apache 2.4.18 服务器状态奇怪的“W”发送回复线程

apache 2.4.18 服务器状态奇怪的“W”发送回复线程

我们最近在生产服务器上切换到了 apache 2.4.18,并且我们的网站全部使用 https/ssl(带有 http2_module 的 HTTP/2),每天的访问量约为 100,000 次。

我们通过 PHP-FPM(proxy_fcgi)使用工作器 MPM 和 PHP 5.6,因为使用 https 时事件 MPM 似乎尚未正常工作。

设置如下:

<IfModule mpm_worker_module>
ServerLimit         16  
StartServers         8   
MinSpareThreads     64  
MaxSpareThreads      256 
ThreadLimit          64  
ThreadsPerChild      64  
MaxRequestWorkers     1024
MaxConnectionsPerChild   10000
</IfModule>

服务器重新启动后,我们的 Debian Jessie 安装上的线程数在几个小时后增加到几千个,并且 apache 错误日志充满了这些消息:

AH00288: scoreboard is full, not at MaxRequestWorkers

/server-status 似乎指示一些奇怪的“W 发送回复”线程,这些线程不执行任何操作,但运行时间很长:

W___KRK___KKC__C___KR__K__KKKRKKKKK___K__CC__KR____K__KK________
__KWR_KK_K_C__KC_KKKKKKK__KK__C_KKKKCK_KKK_C_K____WRKK_K_KKR_K_K
KK_CRKKKKRKKKKK__KK_WKCKK_KKKK_KWKKKWKKRRR__KK__K____KKKCK_KKKKK
_KK___K_W__K___CK_C___K____CRK____CKK_______KKKKKKCK___KCKK_KKK_
KK_KK_KK_KKKKK_K_KKK_KRKK_C_CKKR_C_KW__K_KWRK_KK_R_KR_K__KKK__K_
..............................C.........................W.......
...............................W..............................WW
............W.........W.........................................
.........W..........W....................W......................
.................W.......W......................................
.........................................................W......
CKKKKK_KK_KKKK_CKKKRK_RKRKKKKRRKKRKK_KC_KRKKK_KKKKKRKRRKKKKR_RK_
.............................................................W..
................................................................
................................................................
................................................................

所有“W”线程看起来都像这样:运行了 1453710297 秒,但这不可能是真的,因为服务器昨天刚刚重启,没有进行其他任何操作。

5-0 21872   0/0/0   C   0.00    1453710297  0   0.0 0.00    0.00
5-0 21872   0/0/0   W   0.00    1453710297  0   0.0 0.00    0.00
6-1 17300   0/0/0   W   0.00    1453710297  0   0.0 0.00    0.00
6-1 17300   0/0/0   W   0.00    1453710297  0   0.0 0.00    0.00
6-1 17300   0/0/0   W   0.00    1453710297  0   0.0 0.00    0.00
7-1 4298    0/0/0   W   0.00    1453710297  0   0.0 0.00    0.00
7-1 4298    0/0/0   W   0.00    1453710297  0   0.0 0.00    0.00
8-1 4539    0/0/0   W   0.00    1453710297  0   0.0 0.00    0.00
8-1 4539    0/0/0   W   0.00    1453710297  0   0.0 0.00    0.00
8-1 4539    0/0/0   W   0.00    1453710297  0   0.0 0.00    0.00
9-1 21393   0/0/0   W   0.00    1453710297  0   0.0 0.00    0.00
9-1 21393   0/0/0   W   0.00    1453710297  0   0.0 0.00    0.00
10-1    25117   0/0/0   W   0.00    1453710297  0   0.0 0.00    0.00

最后一栏没有标明请求是什么。

加载的模块有:

apache2ctl -M
Loaded Modules:
 core_module (static)
 so_module (static)
 watchdog_module (static)
 http_module (static)
 log_config_module (static)
 logio_module (static)
 version_module (static)
 unixd_module (static)
 access_compat_module (shared)
 alias_module (shared)
 auth_basic_module (shared)
 authn_core_module (shared)
 authn_file_module (shared)
 authz_core_module (shared)
 authz_groupfile_module (shared)
 authz_host_module (shared)
 authz_user_module (shared)
 deflate_module (shared)
 dir_module (shared)
 env_module (shared)
 evasive20_module (shared)
 expires_module (shared)
 filter_module (shared)
 headers_module (shared)
 http2_module (shared)
 mime_module (shared)
 mpm_worker_module (shared)
 negotiation_module (shared)
 pagespeed_module (shared)
 proxy_module (shared)
 proxy_fcgi_module (shared)
 reqtimeout_module (shared)
 rewrite_module (shared)
 setenvif_module (shared)
 socache_shmcb_module (shared)
 ssl_module (shared)
 status_module (shared)

我已经在网上搜索了好几天,但似乎找不到任何解决方案。非常感谢您的帮助。如果您需要更多信息、详细信息、日志,请告诉我并指出。

答案1

存在几个类似的问题,升级到最新版本的 mod_h2 似乎可以解决问题。

例如: https://github.com/icing/mod_h2/issues/72

我还要补充一点,mod_h2 开发人员(icing)是非常响应该 Git 项目上提出的此类问题,因此如果升级到最新版本无法解决问题,请在那里提出问题。由于此模块仍处于实验阶段,因此这是目前获得支持的最佳地点。

相关内容