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

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

Я знаю метод получения среднего объема памяти, используемого каждым процессом apache2 с помощью ps. Я наблюдал за ним, и он составляет около 18 МБ (хотя, похоже, за последние 2 дня он резко вырос с 18 МБ в среднем до 25 МБ).

Наш сервер обслуживает API, который принимает некоторые данные и сохраняет их в базе данных mysql. API написано на PHP. Я использовал функции PHP mem_get_usage и mem_get_peak_usage, чтобы понять использование памяти, но они и близко не приближаются к 18 МБ.. (в основном показывает ниже 1 МБ)

Так что я не понимаю, что потребляет эту огромную память на процесс Apache. Это стало узким местом, так как наш общий объем оперативной памяти ограничен, и с этим потреблением мы вынуждены ограничивать maxrequestworkers, что приводит к задержке в обслуживании клиентов при высоком трафике.

Типичный вывод ps:

www-data 30024  0.0  0.3 494384 26124 ?        S    04:27   0:03 /usr/sbin/apache2 -k start
www-data 30077  0.0  0.3 494368 26136 ?        S    04:28   0:04 /usr/sbin/apache2 -k start
www-data 30078  0.4  0.3 494360 25960 ?        S    04:28   0:21 /usr/sbin/apache2 -k start
www-data 30080  0.1  0.3 494376 26140 ?        S    04:28   0:05 /usr/sbin/apache2 -k start
www-data 30115  0.2  0.3 494448 26180 ?        S    04:28   0:11 /usr/sbin/apache2 -k start
www-data 30124  0.1  0.3 494376 26212 ?        S    04:28   0:07 /usr/sbin/apache2 -k start
www-data 30132  0.0  0.3 494376 26108 ?        S    04:28   0:03 /usr/sbin/apache2 -k start
www-data 30135  0.0  0.3 494376 26164 ?        S    04:28   0:04 /usr/sbin/apache2 -k start
www-data 30219  0.0  0.3 494352 26108 ?        S    04:29   0:03 /usr/sbin/apache2 -k start

Есть ли какие-нибудь предложения по мониторингу использования памяти каждым процессом apache2 и как его уменьшить/оптимизировать?

Связанный контент