Когда Вы имеете дело с производственным апачским сервером, у Вас ДОЛЖЕН быть средний размер процесса, особенно с php, я рекомендую Вам:
MaxClients
к AVERAGE_MEMORY / RAM_DEDICATED_TO_APACHEГде RAM_DEDICATED_TO_APACHE, это должна быть другая оценка TOTAL_RAM минус поршень, которому нужна остальная часть машины (и быть щедрым с базой данных, если Вы работаете один в той же машине).
Я действительно рекомендую Вам использовать Лак, можно легко выполнить 2 сервера на различных портах на машине сохранения и направить статические файлы в специализированный файл (медиа) сервер (lighthttpd, nginx) или апачский экземпляр с рабочим и никакими дополнительными модулями. И, конечно, поймайте статическое содержание с лаком.
Разделите загрузку, важно, потому что Вы будете использовать ту же сумму поршня для поставки любого статического файла (которому нужен меньше чем 1 МБ), если Вы не делаете этого.
Если действительно необходимо удостовериться, что никогда не использовали весь поршень, можно установить новый cronjob, работающий каждые 2 минуты (меньше или больше как Вы полагаете) со следующей строкой, корректируясь 50
к любой сумме самого низкого поршня, и сохраняют это число выше 30, по крайней мере; Вам будет нужен некоторый поршень для остановки сервера.
vmstat -S M | tail -n 1 | awk 'BEGIN{ "date" | getline date }{if($4 + $6 < 50){ system("/etc/init.d/httpd stop"); system("/etc/init.d/httpd start"); print "Rebooting apache on " date >> "/var/log/apache-reboots.log"}}'
Это очень hakish (грязный) способ предела, который Вы тараните, но может быть очень полезно, когда Вы не действительно уверены в своей средней памяти на апачский процесс, и если Вы видите несколько перезагрузок в Вас файл журнала ("/var/log/apache-reboots.log"), Вы должны настроить Вашего апача MaxClients
, MaxRequestsPerChild
, ThreadsPerChild
для предотвращения "жестких" перезагрузок фьючерсов, со временем и настройкой, у Вас будет точная конфигурация для Вашего сервера.
Использовать мониторинг файла журнала . Например:
logrt["/export/home/user/file.txt","Error",,1]
Затем вы можете установить для него триггер, если хотите:
{myserver.example.com:logrt["/export/home/user/file.txt","Error",,1].nodata(600)}=0
В Интернете доступно учебное пособие , которое немного расширяет его.