Я слежу за сайтом OpenCard, который управляет примерно 3000 продуктами. Версия OpenCart 2.3. Сервер имеет 8 VCPU и 8 ГБ оперативной памяти. Объем используемой памяти составляет около 4,6 ГБ, а средняя загрузка - 0,71, 0,50, 0,48
. Первоначально существовало опасение, что сервер использует все 8 ГБ ОЗУ, и клиент постоянно получает сообщения об этом по электронной почте. Я добавил расширение для кэширования в OpenCart в попытке улучшить производительность. Хотя он и улучшил время загрузки страницы, он не уменьшил объем используемой памяти PHP -FPM.
Чтобы уменьшить потребление памяти, я внес некоторые изменения в PHP -FPM;
pm = dynamic
pm.max_children = 40
pm.start_services = 4
pm.min_spare_servers = 2
pm.max_spare_servers = 10
pm.max_requests = 1000
php_admin_value[memory_limit] = 1024M
Однако даже с этими изменениями в журналах я вижу следующее:
[23-Apr-2020 07:06:42 UTC] PHP Fatal error: Out of memory (allocated 624959488) (tried to allocate 134217736 bytes) in /var/www/public_html/vqmod/vqmod.php on line 341
[23-Apr-2020 07:06:43 UTC] PHP Fatal error: Out of memory (allocated 336687104) (tried to allocate 134217736 bytes) in /var/www/public_html/vqmod/vqmod.php on line 336
[23-Apr-2020 08:25:47 UTC] PHP Fatal error: Out of memory (allocated 404758528) (tried to allocate 134217736 bytes) in /var/www/public_html/vqmod/vqmod.php on line 341
[23-Apr-2020 08:25:50 UTC] PHP Fatal error: Out of memory (allocated 336707584) (tried to allocate 134217736 bytes) in /var/www/public_html/vqmod/vqmod.php on line 336
[23-Apr-2020 08:25:50 UTC] PHP Fatal error: Out of memory (allocated 336707584) (tried to allocate 134217736 bytes) in /var/www/public_html/vqmod/vqmod.php on line 336
[23-Apr-2020 08:25:50 UTC] PHP Fatal error: Out of memory (allocated 336707584) (tried to allocate 134217736 bytes) in /var/www/public_html/vqmod/vqmod.php on line 336
В других журналах я также вижу сообщения об увеличении количества max_children, которые Я пошел вперед и сделал.
Когда я наблюдаю «top», я вижу, что php -fpm использует около 440 МБ на процесс. Первоначально, когда я начал смотреть на этот PHP -FPM, настроенный для запуска с 10 серверами, 10 x 450 МБ означало, что PHP мгновенно использовал 4,5 ГБ доступной памяти, а затем использовал больше по мере необходимости, чтобы создать больше сервера. Я уменьшил количество запускаемых серверов до 4, чтобы уменьшить количество запущенных процессов, что уменьшило общее потребление памяти.
Проблема в том, что я не уверен, какое решение есть;
- сервер просто не подходит для сайта, нужно ли запрашивать больше оперативной памяти и вносить изменения в конфигурацию PHP -FPM
- Является ли сам OpenCart или способ, которым этот сайт был настроен, вызывает проблему? 450 МБ на процесс «чувствует», как много памяти для использования. Я предполагаю, что OpenCart способен управлять 3000 продуктами, но я понятия не имею, насколько он оптимизирован?
- Можно ли оптимизировать конфигурацию PHP для улучшения ситуации?
Любой совет будет оценен.