Почему мой скрипт python случайно убит?

В принципе, у меня есть список из 30 000 URL-адресов. Скрипт просматривает URL-адреса и загружает их (с задержкой в ​​3 секунды). И затем он хранит HTML в базе данных.

И это петли и петли …

Почему он случайно получает «Killed»? Я ничего не трогал.

Изменить: это происходит на 3 моих машинах Linux. Машины находятся в облаке Rackspace с памятью 256 МБ. Больше ничего не работает.

4 Solutions collect form web for “Почему мой скрипт python случайно убит?”

Похоже, что у вас может быть нехватка памяти – возможно, это произойдет в долгосрочной перспективе, если у вас есть «утечка» (например, из-за накопления круговых ссылок). Предоставляет ли Rackspace какие-либо легко используемые инструменты для отслеживания памяти процесса, поэтому вы можете подтвердить, так ли это? В противном случае, такого рода вещи не сложно контролировать с помощью обычных инструментов Linux извне процесса. После того, как вы определили, что «из памяти» является вероятной причиной смерти, такие инструменты, как Pympler, могут помочь вам точно отслеживать, откуда возникает эта проблема (и, таким образом, определить, как избежать этих ссылок – будь то путем изменения их к слабым ссылкам или другим простым подходам – ​​или иным образом удалять утечки).

В таких случаях вы должны проверить файлы журнала.

Я использую Debian и Ubuntu, поэтому основной файл журнала для меня: /var/log/syslog

Если вы используете Red Hat, я думаю, что журнал: /var/log/messages

Если что-то происходит так же необычно, как и ядро, убивающее ваш процесс, будет объяснено это событие журнала.

Я подозреваю, что вы попали в Out of Memory Killer .

Возможно ли, что он ударяет невольным исключением? Вы запускаете это из оболочки или запускаете ее из cron или каким-либо другим автоматическим способом? Если он автоматизирован, выход может не отображаться нигде.

Используете ли вы какой-то менеджер очереди или диспетчер процессов? У меня были, по-видимому, случайные убитые сообщения, когда диспетчер очереди партий, который я использовал, отправлял SIGUSR2, когда время было.

В противном случае я сильно одобряю опцию из памяти.

  • Получить только первую ссылку списка URL-адресов с помощью BeautifulSoup
  • urlfetch перенаправлен в бесконечный цикл в python
  • Параметры кода де-кодирования
  • Как присоединиться к абсолютным и относительным URL-адресам?
  • Как получить все после последнего слэш в URL-адресе?
  • Как присоединиться к компонентам пути при создании URL-адреса в Python
  • Как преобразовать целое число в кратчайшую безопасную строку в Python?
  • Как разбить веб-адрес
  • Python - лучший язык программирования в мире.