On Wed, Apr 04, 2012 at 10:24:28PM +0400, Dmitry E. Oboukhov wrote: > >> есть апач. установлен пакет _mpm_prefork > >> > >> в конфиге прописано следующее: > >> > >> <IfModule mpm_prefork_module> > >> StartServers 1 > >> MinSpareServers 5 > >> MaxSpareServers 5 > >> ServerLimit 500 > >> MaxClients 500 > >> MaxRequestsPerChild 200 > >> </IfModule> > >> > >> в результате ps ax показывает 1 рутовый процесс апача и 6 апачей > >> пользователя. вроде все ок. > >> > >> все крутится на виртуальном хосте где мало памяти. Тут несколько раз > >> сработал мониторинг и по логам OOM-киллер килял апачи. Ковырял думал > >> мож в скриптах где ошибка. Не нашел. однако в очередную перегрузку > >> увидел в ps ax что процессов сильно больше 6: где-то 30. Ну и понятно > >> они память пожрали суммарно. > >> > >> пытался смоделировать ситуацию: на AE сделал параллельных 200 > >> запросов, но больше 6 процессов не увидел. > >> > >> В каких случаях может наращиваться количество процессов и как их > >> жестко ограничить? Я чего-то видимо не понимаю > > The MaxClients directive sets the limit on the number of simultaneous > > requests that will be served. Any connection attempts over the MaxClients > > limit will normally be queued, up to a number based on the ListenBacklog > > directive. Once a child process is freed at the end of a different > > request, the connection will then be serviced. > > > For non-threaded servers (i.e., prefork), MaxClients translates into the > > maximum number of child processes that will be launched to serve requests. > > > Хм я всегда понимал maxclients как параметр который передается функции > listen (2), то есть то что в очереди стоит. > > А как тогда рулить очередью ожидающих соединения? Ну пишут что ListenBacklog, но я сам не пробовал. Generally no tuning is needed or desired, however on some systems it is desirable to increase this when under a TCP SYN flood attack.
-- WBR, wRAR
signature.asc
Description: Digital signature