после того как мы мигрировали в PHP 5.5.6
и Apache 2.4
из PHP 5.3.3
каждый сайт, который работает на Kohana 3.3
встречи время от времени Out of memory
исключение.PHP 5.5.6 Оперативная память утечка
Полное сообщение об ошибке
PHP Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 140316914598360 bytes) in Unknown on line 0
PHP говорит он пытается выделить 127TB
памяти (байт при изменении конца, но его до сих пор вокруг ТБ). Это происходит совершенно случайно. Иногда вы получаете полосу в течение нескольких часов без проблем и внезапно 1 или даже 10 из памяти сообщений в строке. Это происходит во всех проектах, будь то веб-службы, подключающиеся к MySQL, MSSQL или MongoDB или простому веб-сайту.
Худшая вещь - Unknown on line 0
, которая сообщает мне абсолютно ничего. Даже после отключения зарегистрированного shutdown_function
сообщение не изменилось.
Сначала я подозревал PDO dblib + freetds
как виновника, но получил нигде не используя while($row = $query->fetch())
, как описано в https://bugs.php.net/bug.php?id=64511 или this question.
До сих пор я пытался:
- Xdebug
- memory_usage() каротаж
- Трассирование на HTTPD
Все они показывают, что распределение памяти находится в отличном состоянии.
Только strace
показывает некоторое обещание, так как перед каждым out of memory
исключения брошено, это куча munmap
вызовов, которая показывает память продолжает снижаться и затем внезапно бросает исключение. Хотя я не уверен, что он надежный, так как журналы иногда смешивались (от разных вызовов).
Кто-нибудь сталкивался с чем-то похожим?
Каковы наилучшие шаги для решения этой проблемы?
На данный момент, я из идей, что я могу сделать, чтобы решить эту проблему ...
Вам нужна помощь в отслеживании происхождения утечки? Запускайте разные скрипты, чтобы увидеть, есть ли на каждой странице или конкретных. Если это происходит на каждом скрипте, проверьте, включите ли вы его, удалите некоторые/все из них. Если мы сможем найти ответственный сценарий, будет легче отследить. – psycotik
Это легче сказать, чем сделать. Это происходит на множестве веб-сайтов и происходит приложением. один раз за 30 минут в аватарке? Иногда его тихий в течение 2 часов – realshadow
Я предлагаю вам использовать журнал и записывать, когда это случается, чтобы попытаться найти любые шаблоны. – psycotik