Мой выделенный сервер имеет оперативную память 32 ГБ, и память постоянно растет и постоянно обновляется, и я должен перезагружать ее ежедневно. Это стоит мне клиентов и денег.Как найти, какой PHP-скрипт выполняет утечку памяти?
Мне трудно найти место утечки памяти. Все, что я могу найти в Интернете, - это люди, которые говорят «Использовать xdebug», но я не смог найти xdebug-учебники по обнаружению утечек памяти. Я пробовал печатать memory_get_usage до и после вызова функций, но это правильный способ сделать это?
У меня много запущенных скриптов php - некоторые из посетителей, другие из cron-заданий - и мне нужно найти, какой из них утечка памяти и исправить ее как можно скорее, но я даже не знаю, как определить, если данная функция пропускает память или нет.
Я пробовал печатать memory_get_usage перед вызовом функции и после, и он поднимается вверх, но если я вызываю функцию более одного раза, она больше не растет. Может кто-нибудь объяснить это и рассказать мне, как я могу просто и легко сказать, есть ли у функции PHP утечка памяти?
Я планировал сделать это ... копировать все это на другой сервер и только запускать по одной штуке за раз и посмотреть, что вызывает ее. Дорогой и отнимающий много времени, хотя ... Не существует способов модульной тестовой памяти в PHP? – Guy
Нет, я знаю. Мне тоже любопытно. Я проголосовал за тебя, и, возможно, мы оба узнаем. –
Я согласен с @ TomášZato.Вы можете использовать скрипт 'auto_append_file' и методы' memory_get_ *', чтобы записывать все ваши скрипты и следить за тяжелыми. – metadings