Привет дебиановцы, В моем первом посте решил поделиться своим горем, затрагивающем падучесть связки, приведенной в сабже.
Для снижения нагрузки собрал mod_fcgid, что также позволило отказаться от prefork MPM в пользу worker MPM. настройки worker MPM следующие: <IfModule mpm_worker_module> ServerLimit 20 StartServers 5 MaxClients 500 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0 </IfModule> переменные, для запуска php5-cgi: PHP_FCGI_MAX_REQUESTS=500 PHP_FCGI_CHILDREN=8 Есть ресурс, активно обменивающийся SOAP сообщениями при запросе. берем apache benchmark (ab): host $ ab -n 100 -c 10 http://host.com/ Видим, что fcgid начинает активно spawn'ить дочерние процессы. Среди сообщений также видим большое кол-во строк: php (pre-forking): Resource temporarily unavailable, в то же время, в таблице процессов появляются чайлды /usr/bin/php5-cgi с uid=0 (в штатной ситуации uid=33). при передергивании Apache в логи пишутся сообщения: [Sun Oct 07 19:39:45 2007] [alert] (11)Resource temporarily unavailable: apr_thread_create: unable to create worker thread При прямом вызове php скрипта и интенсивном его выполнении в лог валятся ошибки: sh: fork: Resource temporarily unavailable sh: fork: Resource temporarily unavailable В системе не сконфигурировано никаких лимитов для uid=33 (www-data). limits.conf @users soft nproc 100 @users hard nproc 150 @users hard core 100000 @users - maxlogins 3 @users hard nofile 1000 Нехватки вычислительных ресурсов не наблюдается (из памяти адресовано не более 25%, нет нехватки процессорного времени). Ощущение такое, что где-то проставлен лимит на кол-во форков и потоков. Но где, я не в состоянии найти. Подобное поведение заметно также на другом, практически идентичном в конфигурации, сервере. Устал бороться. Для меня эта сага длится уже несколько месяцев :-( Прошу, если кто может, помогите справиться с этой проблемой. -- Aleks Feltin System Administrator Sunset Wireless Ltd --
signature.asc
Description: Digital signature