У меня есть машина с 128 ГБ оперативной памяти, которая использует Apache2 в качестве веб-сервера (на этой машине нет сервера баз данных, машина базы данных - это 64 ГБ оперативная память, которая может обрабатывать до 2000 подключений). С помощью инструмента мониторинга я вижу, что на данный момент насчитывается около 44 занятых и 12 незанятых работников, каковы наилучшие теоретические значения для моего модуля prefork?
я иногда получаю пустые страницы при загрузке веб-сайтов в часы высокой нагрузки и получаю эту ошибку в моем журнале ошибок apache:
[примечание] дочерний пид 13595 выходной сигнал Ошибка сегментации (11)
как решить эту проблему тоже?
Моя конфигурация модуля Apache2 Prefork:
StartServers 3
MinSpareServers 3
MaxSpareServers 5
ServerLimit 3200
MaxClients 3100
MaxRequestsPerChild 0
Бесплатно -h на WWW Machine :
Всего: 128 G Свободно: 97 ГБ (с запущенным apache2) Общие 0b буферы 1.9G Кэш 23G
Ram использовал Apache2 и другие программы:
Private + Shared = RAM used Program
96.0 KiB + 61.0 KiB = 157.0 KiB sh
176.0 KiB + 26.0 KiB = 202.0 KiB atd
176.0 KiB + 35.5 KiB = 211.5 KiB acpid
208.0 KiB + 19.5 KiB = 227.5 KiB mdadm
204.0 KiB + 30.0 KiB = 234.0 KiB init
248.0 KiB + 62.0 KiB = 310.0 KiB sendmail
376.0 KiB + 36.0 KiB = 412.0 KiB dbus-daemon
388.0 KiB + 285.5 KiB = 673.5 KiB cron (2)
820.0 KiB + 42.0 KiB = 862.0 KiB gam_server
920.0 KiB + 108.0 KiB = 1.0 MiB ntpd
968.0 KiB + 243.0 KiB = 1.2 MiB getty (6)
1.3 MiB + 351.5 KiB = 1.6 MiB udevd (3)
1.5 MiB + 343.0 KiB = 1.8 MiB sendmail-msp
2.0 MiB + 910.0 KiB = 2.9 MiB plugin-localresources2
3.4 MiB + 50.0 KiB = 3.4 MiB rsyslogd
3.6 MiB + 68.5 KiB = 3.7 MiB bash
1.9 MiB + 2.1 MiB = 4.0 MiB sendmail-mta (4)
3.8 MiB + 556.0 KiB = 4.3 MiB sshd (2)
3.7 MiB + 1.2 MiB = 4.8 MiB plugin-apache2
5.1 MiB + 1.2 MiB = 6.3 MiB agent-service
7.0 MiB + 654.0 KiB = 7.6 MiB fail2ban-server
9.6 MiB + 2.6 MiB = 12.2 MiB proftpd (8)
59.2 MiB + 70.0 KiB = 59.3 MiB miniserv.pl
96.8 MiB + 3.6 MiB = 100.4 MiB php5-cgi (2)
196.4 MiB + 35.9 MiB = 232.3 MiB apache2 (40)
---------------------------------
tot 450.0 MiB
источник
Ответы:
Параметры предварительной настройки Apache, рекомендации по настройке производительности Apache
цитирую:
вы должны настроить его следующим образом:
Для расчета вы можете использовать следующий скрипт:
Это лучшая оценка того, сколько отдельный процесс Apache использует память при попытке пропорционально разделить общее использование на число активных процессов Apache и добавить его поверх Pss (размер пропорционального набора)
Наконец, вы делите 115 ГБ с этой цифрой и получаете
MaxClients/ServerLimit
. Отсюда вы можете относительно рассчитать другие цифры, такие какStartServers
30% МаксКлиентовMinSpareServers
5% от MaxClientsMaxSpareServers
10% от MaxClientsServerLimit
== MaxClientsMaxConnectionsPerChild
10000 (как консервативная альтернатива для решения возможной проблемы с приложениями с утечкой памяти)источник
/server-info
: i.imgur.com/SS2gIXI.png