Apache, mysql. Почему очень много процессов и большое потребление памяти?

Сервер на CentOS (8 ядер, 16 Гб RAM), стоит связка nginx + httpd + mysql + memcached.

Команда(количество процессов)
pgrep httpd | wc -l
выдает 88, хотя пользователей на сайте одновременно явно меньше.

Каждый процесс httpd тянет за собой подключение mysql, в итоге память рано или поздно переполняется и сервер падает.

Пару раз случалось, что падал memcached(1.4.15, стоит на том же сервере), есть подозрение что узкое место - mysql и что при падении memcached mysql просто не справляется.

e3fc5d839b9a5006d305296c5ac6578e.jpeg

Спецы, как вы думаете, где узкое место и что нужно сделать чтобы избавиться от этого?
  • Вопрос задан
  • 8132 просмотра
Пригласить эксперта
Ответы на вопрос 2
@bondbig
Ну, для начала.
1) Включить server-status (включая Extended) и смотреть.
2) Смотреть логи апача
3) Поставить mytop, смотреть
4) Включить slow log, изучать
5) Поставить atop, iotop, наблюдать

Дальше уже можно ставить newrelic, изучать. Ну и я надеюсь, что какой-то исторический мониторинг есть? Хотя бы munin?
Ответ написан
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
Крон ничего не делает в сторону запуска этих процессов?
Посетителей как считаете ? По логам или на глаз? Если считать RPS, а не ненужное число - оно нормальное?
Nginx точно всю статику сам отдаёт? Ничего лишнего в apache не проксируется?
Тумблы какие-нибудь генерятся не апачем, случайно?

Чем вообще процессы заняты? Что в strace ?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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