我有我的apache服务器configuration工人MPM如下:
<IfModule mpm_worker_module> ServerLimit 20 ThreadLimit 50 StartServers 3 MaxClients 1000 MinSpareThreads 50 MaxSpareThreads 200 ThreadsPerChild 50 MaxRequestsPerChild 10000 </IfModule>
该服务器每天需要约200万个请求。 当请求到来时,Apache服务器将停止接受新的连接(浏览器无法连接)。 这个过程将保留在过程列表中。 内存使用率约为10%,CPU为0%。 看来apache服务器无法在应该的时候回收这些进程。
我发现与错误日志中的崩溃相关的东西:
[Mon Aug 15 12:36:24 2011] [error] child process 11444 still did not exit, sending a SIGKILL [Mon Aug 15 12:36:24 2011] [error] child process 12090 still did not exit, sending a SIGKILL [Mon Aug 15 12:36:24 2011] [error] child process 10698 still did not exit, sending a SIGKILL [Mon Aug 15 12:36:24 2011] [error] child process 12144 still did not exit, sending a SIGKILL [Mon Aug 15 12:36:24 2011] [error] child process 12032 still did not exit, sending a SIGKILL [Mon Aug 15 12:36:24 2011] [error] child process 10699 still did not exit, sending a SIGKILL [Mon Aug 15 12:36:25 2011] [notice] caught SIGTERM, shutting down [Mon Aug 15 12:37:31 2011] [notice] mod_python: Creating 8 session mutexes based on 20 max processes and 50 max threads. [Mon Aug 15 12:37:31 2011] [notice] mod_python: using mutex_directory /tmp [Mon Aug 15 12:37:31 2011] [notice] Apache/2.2.17 (Ubuntu) mod_python/3.3.1 Python/2.7.1+ mod_ssl/2.2.17 OpenSSL/0.9.8o configured -- resuming normal operations [Mon Aug 15 15:36:46 2011] [error] server is within MinSpareThreads of MaxClients, consider raising the MaxClients setting [Mon Aug 15 15:38:48 2011] [error] server reached MaxClients setting, consider raising the MaxClients setting [Mon Aug 15 16:17:31 2011] [warn] child process 766 still did not exit, sending a SIGTERM [Mon Aug 15 16:17:31 2011] [warn] child process 767 still did not exit, sending a SIGTERM
有任何想法吗? 谢谢!
你可能想用mod_status来检查你的服务器状态。 您可能有不断线的连接,并处于“发送应答”状态(W)。 看看这篇关于如何诊断这个解决httpd maxclients和modstatus报告的文章