Высокое использование памяти не всегда является проблемой - память должна использоваться, поэтому ОС / программное обеспечение использует ее в качестве кеша. Проблема возникает только в том случае, если ОС начинает убивать процессы из-за нехватки памяти.
Вы действительно дали нам очень мало информации, даже не «лучший» вывод, поэтому то, что я привел ниже, является предположением.
В вашем случае я подозреваю, что вы настроили PHP так, чтобы было доступно больше потоков, чем доступный объем памяти. Вы должны убедиться, что вы не перераспределили память для каждого рабочего процесса PHP и что у вас не настроено слишком много рабочих процессов.
В Ubuntu моя конфигурация находится в /etc/php/7.4/fpm/pool.d/www.conf. Ключевые записи, которые я настроил для своего сервера с 512 МБ ОЗУ и 1 ГБ подкачки, приведены ниже.
вечера = динамический
pm.max_children = 3
pm.start_servers = 1
pm.min_spare_servers = 1
pm.max_spare_servers = 1
Вы также можете использовать «pm = ondemand», что означает, что PHP-воркеры не создаются до тех пор, пока они не потребуются. Это полезно только для веб-сайтов с очень небольшим объемом, где время отклика не так важно.
В вашем php.ini (для меня это /etc/php/7.4/fpm/php.ini) вы можете настроить лимит памяти для каждого рабочего потока. Это то, сколько памяти дается каждому рабочему потоку — уменьшите его как можно меньше, пока ваш сайт все еще работает. Это настроено для Wordpress.
memory_limit = 128M