Есть двух-процессорная машина с 3-х стами мегами памяти
Процы -- Celeron 350.
На ней Gentoo, Апач и почта в виде Exim-а и Courier-а.
Апач 2.0.47.
На нем поставочная конфигурация MPM
<IfModule prefork.c>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
<IfModule worker.c>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 10
MaxRequestsPerChild 0
</IfModule>
<IfModule perchild.c>
NumServers 5
StartThreads 5
MinSpareThreads 5
MaxSpareThreads 10
MaxThreadsPerChild 20
MaxRequestsPerChild 0
</IfModule>
Проблема в том, что если дать на апач нагрузку, например так:
httperf --hog --server www.server..dom --uri /ddd/ddd?what=ddd --num-conn=100 -ra 10 --timeout 5
То апач поднимает немеряное количество тредов/процессов и! самое главное
не убивает их по окончании нагрузки. Что в свою очередь ведет к тому, что
машина начинает еле-еле ворочаться.Но дело осложняется тем, что нагрузка такая почти реальная. Тот же самый тест на апаче 2.0.44 но на фре с такой же конфигурацией MPM ведет себя нормально.
Что делать, как быть -- ума не приложу. Толи это 47-ой такой глючный, толи
руки, то ли что... Может сталкивался кто, подскажите...
>На нем поставочная конфигурация MPM
>MaxClients 150IMHO, для обработки 150 соединений твоих 300Мб ОЗУ на несколько порядков не хватит, поставь максиум 50.
>То апач поднимает немеряное количество тредов/процессов и! самое главное
>не убивает их по окончании нагрузки. Что в свою очередь ведет к
>тому, что
>машина начинает еле-еле ворочаться.В своп залазит. Сколько именно процессов родится, твои настройки позволяют родить 150 процессов/тредов. Убивать он их сразу после окончания пика и не должен.
>руки, то ли что... Может сталкивался кто, подскажите...
Хочешь стабильности ставь 1.3.28.
>>На нем поставочная конфигурация MPM
>>MaxClients 150
>
>IMHO, для обработки 150 соединений твоих 300Мб ОЗУ на несколько порядков не
>хватит, поставь максиум 50.Хватит ещё как
>
>>То апач поднимает немеряное количество тредов/процессов и! самое главное
>>не убивает их по окончании нагрузки. Что в свою очередь ведет к
>>тому, что
>>машина начинает еле-еле ворочаться.
>
>В своп залазит. Сколько именно процессов родится, твои настройки позволяют родить 150
>процессов/тредов. Убивать он их сразу после окончания пика и не должен.
>
>
>>руки, то ли что... Может сталкивался кто, подскажите...
>
>Хочешь стабильности ставь 1.3.28.Хочешь стабильности - читай маны и Bugtrack'и
# MaxRequestsPerChild: the number of requests each child process is
# allowed to process before the child dies. The child will exit so
# as to avoid problems after prolonged use when Apache (and maybe the
# libraries it uses) leak memory or other resources. On most systems, this
# isn't really needed, but a few (such as Solaris) do have notable leaks
# in the libraries. For these platforms, set to something like 10000
# or so; a setting of 0 means unlimited.
#
# NOTE: This value does not include keepalive requests after the initial
# request per connection. For example, if a child process handles
# an initial request and 10 subsequent "keptalive" requests, it
# would only count as 1 request towards this limit.
#
MaxRequestsPerChild 500-- 0 means unlimited
-- leak memory or other resourcesИ ещё:
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#
MaxKeepAliveRequests 100
Вот спасибо...
Как же я это проглядел....