PHP-FPM использует слишком много памяти

У меня есть VPS-сервер, который запускает для меня несколько веб-сайтов, а также несколько скриптов, и похоже, что у него заканчивается память. Общий объем памяти составляет 1 ГБ. Похоже, php-fpm исчерпывает память. Раньше он просто убивал другие процессы (например, mysql) для освобождения памяти.

Ошибка была:

php fpm has invoked oom-killer

Я решил, что с помощью этого решения: php-fpm вызывает oom-killer

Затем я попытался настроить различные настройки php-fpm безуспешно. Я также увеличил размер файла подкачки с 1 ГБ до 2 ГБ (в 2 раза больше моей физической памяти). У меня всего 10 небольших веб-сайтов, которые не получают большого трафика, поэтому я не понимаю, почему у меня заканчивается память. Что еще я могу сделать, помимо покупки дополнительной памяти для своего компьютера?

На данный момент php-fpm, похоже, забирает весь 1 ГБ памяти и большую часть подкачки, в некоторых случаях это мешает мне получить доступ к VPS так как я не могу пройти аутентификацию!

Запуск a:

service php-fpm restart

Мгновенно освобождает почти всю память на приставке (т. е. 950/990 при использовании заменяется на 200/990 при использовании). Итак, какие у меня варианты? При необходимости я также могу опубликовать соответствующие файлы конфигурации.

Соответствующие спецификации: ОС: Centos 6.7 x86_64 Оперативная память: 1 ГБ Своп: 2 ГБ php -версия: PHP 5.5.35 (cli) (построено: 29 апреля 2016 г., 09:07:44) php-fpm -version: PHP 5.5.35 (fpm-fcgi) (построено: 29 апреля 2016 г., 09:09:09)

0
задан 6 June 2016 в 14:23
1 ответ

(это должен быть комментарий, но он немного длинный).

"Я решил, что используя это решение" - к сожалению, большинство мнений там неверны.

php fpm вызвал oom-killer

Это значит, что:

1) ваша система настроена на перекомментирование памяти. Чрезмерный коммит памяти полезен, когда вам приходится управлять плохо написанными, длительными процессами, написанными на объектно-ориентированных языках (например, Java), а также для vm-хостов, на которых запущено большое количество неактивных гостей. Ни то, ни другое, похоже, здесь не применимо. Установка overcommit_memory в 2, как предлагается, отключит overcommit - так что WTF предлагает Крис установить коэффициент overcommit_ratio в 80% (по умолчанию обычно около 50%), когда он отключен???

2) PHP-FPM попросил больше памяти, и не осталось ни одного. Это не обязательно означает, что PHP-FPM израсходовал всю память.

Ваша проблема в том, что используемая конфигурация не помещается в используемый вами бокс. Но описание того, как настроить Linux, PHP, MySQL и веб-сервер здесь несколько не к месту.

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

Так как вы не опубликовали конфигурацию php-fpm, не предоставили никаких подробностей о вашем веб-сервере, а также не дали никаких данных о времени ответа, на этот вопрос нельзя ответить здесь.

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

.
3
ответ дан 4 December 2019 в 12:23

Теги

Похожие вопросы