Назад | Перейти на главную страницу

Влияние ограничения памяти PHP на рабочих Apache2

Как вы уже догадались, у меня есть установка сервера с mod_php и Apache2 (prefork) с APC. Ежедневно сайт получает приличный объем трафика, максимум - 280-290 пользователей одновременно. Несколько дней назад я начал замечать проблемы «Can't Allocate Memory» с PHP, которых не было при низком трафике.

Общее решение для этого - увеличить лимит памяти для PHP в файле PHP.ini. Я хотел знать, как это повлияет на производительность и общую масштабируемость, когда я увеличу лимит памяти.

Емкость сервера: 8 ГБ ОЗУ, четырехъядерный процессор i7 (920)

    StartServers          80
    MinSpareServers       40
    MaxSpareServers      60
    MaxClients          250
    MaxRequestsPerChild   200

Общее решение для этого - увеличить лимит памяти для PHP.

Нет. В некоторых случаях это может быть правильное решение, но вы не предоставили никаких подробностей своего анализа. То, что вы не знаете о последствиях увеличения предела памяти, означает, что ваш анализ причины проблемы может быть неправильным.

Как с исходным сборщиком мусора, так и с GC, проверяющим циклические ссылки, увеличение предела памяти снизит частоту сборки мусора, что приведет к тому, что в памяти будет храниться больше мусора. В результате (в некоторых случаях) это увеличивает проблемы нехватки памяти.

Вы не предоставили никакой реальной информации о том, сколько ресурсов использует ваша система / сколько доступно.

280-290 пользователей

Этот показатель в значительной степени не имеет отношения к емкости / производительности.

NB Я не прошу вас предоставлять информацию, необходимую для более полного анализа - чтобы дать обоснованную рекомендацию, это намного, НАМНОГО больше, чем должно быть в публикации здесь.

Короткий ответ - попробуйте и посмотрите, что произойдет с вашей производительностью / ошибками.

Более длинный ответ заключается в том, что вы, возможно, захотите взглянуть в другом месте - на свой код / ​​сжатие / кеширование.