Убитый процесс, который не показал признаков утечки памяти?

У меня есть скрипт, который работает в фоновом режиме, написанный на PHP, который подключается к другим серверам несколько раз (один за другим).

Я специально работал над утечками памяти, чтобы правильно закрыть используемые ресурсы, и я реализовал вывод в реальном времени того, что использует скрипт, с помощью memory_get_usage() функция из PHP.

Сценарий выполнялся около часа, а память показала что-то около 340 КБ (до 360 КБ максимум).

Но потом это прекратилось. Без каких-либо сообщений об ошибках или чего-либо еще.

Когда я посмотрел на dmesgвот что я увидел:

Недостаточно памяти: убить процесс 3147 (php5), набрать 905 баллов или принести в жертву ребенка

Убитый процесс 3147 (php5) total-vm: 651064kB, anon-rss: 475032kB,
Файл-Новости: 48kB

(Для информации у меня есть 512Mb сервер Digital Ocean)

Со списком процессов до, включая сообщение с lowmem_reserve

Я начинаю думать, что скрипт содержит некоторую утечку памяти. Не могли бы вы подтвердить это? Но если это так, почему memory_get_usage не увеличилось? это надежно? Есть ли лучший способ отследить потенциальные утечки памяти?

ОБНОВЛЕНИЕ 1: Вот текущее состояние моего сервера

  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND
2283 root      20   0 67104 6724  900 S   0,0  1,3   0:05.97 fail2ban-server
4100 cyril     20   0 21416 4156 1672 S   0,0  0,8   0:00.16 bash
4094 root      20   0 81856 3976 3136 S   0,0  0,8   0:00.00 sshd
4192 root      20   0 20568 3384 1732 S   0,0  0,7   0:00.09 bash
2370 root      20   0 62032 2264 1196 S   0,0  0,4   0:00.13 console-kit-dae
4099 cyril     20   0 81856 1676  848 S   0,0  0,3   0:00.00 sshd

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …