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

Как определить, следует ли использовать KeepAlive в apache?

Я прочитал несколько сообщений и вопросов о KeepAlive, но не нашел подходящего для меня.

У меня есть сервер с одним клиентом (Trivago), который выполняет сотни запросов (доступность отеля) в секунду. Для каждого запроса я должен запрашивать цену на стороннем сервере. Итак, поток будет таким:

Trivago запрашивает информацию о наличии и ценах, я запрашиваю их у стороннего поставщика, я получаю их, выполняю логику PHP и возвращаю Json-ответ Trivago.

Детали сервера:

CentOS Linux 7
Plesk Onyx (uses nginx & apache)
4 cores
8GB

Конфигурация PleskPHP директивы php-fpm:

pm.max_children    250
pm.max_requests    1000
pm                 ondemand

httpd.conf:

ServerLimit           16
MaxClients           400
StartServers           3
ThreadsPerChild       25
ThreadLimit           64

Используя это, я получаю 12,5 МБ или ОЗУ на процесс, что теоретически позволяет мне запускать до 500 процессов одновременно с использованием 6 ГБ ОЗУ:

ps -ylC httpd --sort:rss | awk '{sum+=$8; ++n} END {print "Tot="sum"("n")";print "Avg="sum"/"n"="sum/n/1024"MB"}'

Вопрос:

В то время как использование других ресурсов выглядит стабильным:

сеть ЦПУ оперативная память mysql

Использование памяти apache выглядит так:

Оперативная память Apache

Я ошибаюсь или это вызвано KeepAlive?

Это, кстати, графики часов низкой загруженности. В часы высокой загруженности использование памяти Apache приближается к пределу 8 ГБ.

Спасибо.


Редактировать:

Это помечено как дубликат, и да, он может быть дубликатом, но я на шаг впереди этого вопроса. Я уже следил за системой, добавлял трафик через JMeter, оценивал результаты и исправлял некоторые вещи. Поэтому я задам более простой вопрос:

Я понимаю, что подход здесь заключается в том, чтобы включить его и протестировать, но поскольку сервер сейчас находится в производстве (я не испытал этот график при использовании JMeter), я не могу.