Jos*_*ile 28 mpm-worker apache-2.2 apache-2.4
<IfModule mpm_event_module>
StartServers 2
ThreadLimit 196
MinSpareThreads 96
MaxSpareThreads 192
ThreadsPerChild 96
MaxRequestWorkers 192
MaxConnectionsPerChild 96
</IfModule>
Run Code Online (Sandbox Code Playgroud)
服务器版本:Apache/2.2.4 (Unix) OpenSSL/1.0.1e mod_fastcgi/mod-fastcgi-SNAP-0910052141
服务器构建时间:2013 年 5 月 24 日 16:48:07
当前时间:2013 年 6 月 17 日星期一 09:48:11 COT
重启时间:2013 年 6 月 17 日星期一 08:35:14 COT
父服务器配置。代:1
父服务器 MPM 代:0
服务器正常运行时间:1 小时 12 分 57 秒
服务器负载:0.05 0.10 0.09
总访问次数:14144 - 总流量
:349.7 MB CPU 使用率:u.28 s.25 cu0 cs0 - .0121% CPU load
3.23 requests/sec - 81.8 kB/second - 25.3 kB/request
当前正在处理 1 个请求,191 个空闲工作线程Run Code Online (Sandbox Code Playgroud)PID | Connections | Threads | Async connections | total | accepting | busy | idle | keep-alive | closing ============================================================== 18997 | 3 | yes | 1 | 95 | 0 | 3 18485 | 0 | yes | 0 | 96 | 0 | 0 ============================================================== Sum | 3 | | 1 | 191 | 0 | 3
错误信息是
[Mon Jun 17 09:32:45.680842 2013] [mpm_event:error] [pid 8574:tid 140185091581760] AH00485:记分板已满,不在 MaxRequestWorkers
这每隔几秒钟出现一次。我不明白。我该如何解决?
小智 19
我们在 Apache 2.4.6 上遇到了同样的问题。在监视服务器并调整设置几个小时后,我们认为 Apache 可能存在错误。似乎发生的是服务器进程偶尔进入G
状态(优雅完成)并重新启动以接受新请求,这是正常的。不正常的是,由于某种原因,这可能需要几分钟才能重新启动。如果您只有几个服务器进程在运行并且它们都同时进入该G
状态,那么您的记分板就会填满,您将无法处理更多请求。
我们所做的是增加服务器的数量,这样它们同时进入G
状态的可能性就会降低。还要确保MaxRequestWorkers
为每个服务器进程分配至少 25 个线程 ( ) 因为这似乎是默认值(即,如果 5 Servers
x 25 ThreadsPerChild
= 125 MaxRequestWorkers
)。您可以根据ThreadsPerChild
需要进行更改,我们将其保留为默认值。如果您没有分配足够的线程,额外的服务器将不会启动。我们离开MinSpareThreads
的是25的默认值和默认值MaxSpareThreads
是75,如果你做的修改这些设置,该值MaxSpareThreads
必须大于或等于总和MinSpareThreads
及ThreadsPerChild
。也MaxRequestWorkers
必须等于或小于ServerLimit
。
这是对我们有用的方法,但它可能不是最适合您的配置。
StartServers 3
MinSpareServers 5
MaxSpareServers 10
ServerLimit 250
MaxRequestWorkers 250
MaxConnectionsPerChild 1000
KeepAlive Off
Run Code Online (Sandbox Code Playgroud)
编辑:这是httpd 的 mpm_event 模块中已确认的错误,可能无法通过配置修复。
链接的错误跟踪器条目有一个假定的补丁和更多关于如何在事件模块的新版本正式发布之前解决此问题的讨论。