Использование памяти в PHP-приложении (CakePHP). Или это конфигурация Linux? - PullRequest
0 голосов
/ 01 ноября 2011

В последние несколько дней у меня возникла очень большая проблема с памятью на сервере, где размещено мое веб-приложение. Использование памяти растет и не высвобождается. После нескольких минут использования приложения CakePHP память используется на 100%, поскольку сервер начинает использовать файл подкачки и делает сервер непригодным для использования.

У меня 5159948 КБ памяти, с файлом подкачки 4128764 КБ.

В php.ini ограничение памяти установлено как:

memory_limit = 1024M

Я должен сказать, что проблем не было до 2-3 дней назад. В прошлом были некоторые проблемы с симуляцией, но я решил их, воссоздав индексы в базе данных вместе с дефрагментацией базы данных. Сегодня я попытался сделать то же самое, но на этот раз я не решил проблему.

Где может быть проблема? Я не уверен, но похоже, что своп становится чуть менее эффективным, если я выключаю MySQL. Кроме того, чтобы упомянуть, что в базе данных у меня нет ничего «тяжелого».

Если вы можете помочь мне с этим вопросом, пожалуйста ...

ОБНОВЛЕНИЕ: Я обнаружил, что Apache вызывает проблему, потому что, когда я его выключаю, освобождается память .... Можете ли вы помочь мне, что сделать, чтобы решить эту проблему ...

Ответы [ 2 ]

1 голос
/ 01 ноября 2011

Было бы абсолютно безумно, если бы вашему серверу требовалось 1024M в качестве memory_limit; потому что это ограничение на самом деле за запрос . Это означает, что если у вас есть 8 одновременно работающих пользователей, в худшем случае вам уже понадобится 8 ГБ.

Очень важно выяснить, что же на самом деле потребляет всю эту память. Это веб-сервер, процесс PHP, процесс MySQL? Исходя из этого, вы можете сделать следующие шаги, чтобы изолировать, что делает это и как вы можете решить это.

0 голосов
/ 02 ноября 2011

я обнаружил, что Apache вызывает проблему, потому что, когда я его выключаю, память освобождается

Если вы выдерните кабель питания, это также уменьшит память.Вы не предоставили никакой соответствующей информации о том, какое расследование вы провели, как осуществляется доступ к службам на вашем ящике, а также о структуре рабочей нагрузки.Но, по-видимому, большая часть рабочей нагрузки базы данных будет зависеть от веб-запросов - поэтому отключение apache приведет к тому, что mysql освободит память.

Каково ваше среднее время ответа на веб-запросы?Используете ли вы сжатие для PHP и статический контент?Каково ваше среднее количество одновременных запросов?Вы используете ускоритель PHP?Вы настроили кэширование контента?

Предел памяти в 1 ГБ абсурдно высок - если вашему приложению требуется такой объем памяти, его необходимо реорганизовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...