apache2 http2 keepalives 和优雅完成

apache2 http2 keepalives 和优雅完成

我想知道是否有人可以为我解释一些事情,因为我陷入了困境。

我正在照看一个有多个域名的网站,这些域名与相同的代码对话,根据所使用的域名提供不同的内容。我们将该网站移至 http2,并为所有域名使用通配符证书,除了我无法弄清楚的问题之外,一切似乎都运行良好。

我当前所有网站的http2配置VirtualHost如下配置 1

Keepalives当服务器运行了一段时间(24 小时)后,尽管有off和,但仍会有很多保持活动H2MaxWorkerIdleSeconds = 20

keepalive我注意到,所有在请求列服务器下没有数据的进程状态 1

有时我还会发现很多“ Gracefully finishing”进程,我用脚本手动终止它们。

这样做的实际结果是网站运行速度会变慢,而且我会用尽所有的进程。

谁能告诉我为什么设置为 keepalive 的行没有请求或 Vhost 以及为什么我会卡住“ Gracefully finishing”没有死的进程?

配置 1

ProtocolsHonorOrder On

Protocols h2 http/1.1

H2Direct on

SSLCompression Off

H2MaxSessionStreams 200

H2SessionExtraFiles 100

H2MaxWorkerIdleSeconds 20

H2MaxWorkers 200

H2MinWorkers 10

服务器状态 1

Current Time: Wednesday, 13-Jul-2016 14:00:49 BST
Restart Time: Tuesday, 12-Jul-2016 18:29:46 BST
Parent Server Config. Generation: 4
Parent Server MPM Generation: 3
Server uptime: 19 hours 31 minutes 3 seconds
Server load: 0.49 0.52 0.50
Total accesses: 645863 - Total Traffic: 5.4 GB
CPU Usage: u406.79 s84.29 cu0 cs0 - .699% CPU load
9.19 requests/sec - 80.6 kB/second - 8.8 kB/request
132 requests currently being processed, 29 idle workers
RC_KWKWK_KK_KWKKK_KKKKWKKW.KKWK_KWKKWKKWKKWKKKK__K_KKWK_KKWKK_._
KKWKKK_K.W_KK.KKKKKKKKKK.K_KK_W.W.WKKKK_KKK_KW.K..KK_KKKK_KWKKKK
K.K__WK_KKK_KWK__KWKKKKK.__WK_K_KWKKRWKKKKKWK...................
................................................................
Scoreboard Key:
"_" Waiting for Connection, "S" Starting up, "R" Reading Request,
"W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
"C" Closing connection, "L" Logging, "G" Gracefully finishing,
"I" Idle cleanup of worker, "." Open slot with no current process
Srv PID Acc M   CPU SS  Req Conn    Child   Slot    Client  VHost   Request
0-3 2290    0/50/3251   R   0.60    0   0   0.0 0.42    26.94   119.26.154.144  www.changeddomain.com:80    HEAD /webcams/lac HTTP/1.1
1-3 2292    1/80/3194   C   7.94    0   4172    84.9    0.69    29.33   180.76.15.8 www.changeddomain.com:443   /camper-portals HTTP/1.1
2-3 2200    0/61/4811   _   0.76    4   0   0.0 0.90    44.57   66.249.78.18    www.changeddomain.com:80    GET /robots.txt HTTP/1.1
3-3 2294    45/74/851   K   2.96    22  270 15.9    0.07    5.31    194.203.40.135      
4-3 2296    1/102/4297  W   5.10    204 7945    0.0 0.86    38.15   82.132.237.7    www.changeddomain.com:443   GET /events/ HTTP/2
5-3 2298    19/38/4996  K   0.88    275 0   0.0 0.20    54.36   2a02:c7d:6a44:3e00:17:3a28:d22c     
6-3 2300    12/98/4308  W   1.19    124 0   0.0 0.33    39.88   164.39.215.246  www.changeddomain.com:443   GET /images/some-logo.png HTTP/2
7-3 2797    12/40/4700  K   0.38    83  147 0.0 0.31    47.94   217.41.3.50     
8-3 2304    0/86/4820   _   1.82    2   489 0.0 0.68    45.34   5.65.46.171 www.changeddomain.com:443   POST /_ajax_request.php HTTP/1.1
9-3 2307    17/73/4692  K   1.89    52  0   0.0 0.46    40.90   79.154.86.34        
10-3    2799    2/32/2915   K   0.34    5   0   0.0 0.56    25.22   88.131.48.4     
11-3    2311    0/70/4038   _   0.95    0   0   0.0 0.61    37.22   192.243.55.136  www.changeddomain.com:80    /events/videos/video-june HTTP/1.1
12-3    2313    19/76/5080  K   1.11    192 0   0.0 0.51    55.49   90.147.34.234       
13-3    2315    9/129/3168  W   2.33    30  155 1.5 0.50    32.61   86.146.7.124    www.somechangeddomain.com:443   POST /_ajax_request.php HTTP/2

答案1

您使用的是哪个版本的 apache 和 mod_http2?最初这类事情有很多问题(例如https://github.com/icing/mod_h2/issues/72

建议您升级到最新版本(注意这需要 Apache 2.4.23):https://github.com/icing/mod_h2/releases

Apache 中的 HTTP/2 支持仍处于实验阶段https://httpd.apache.org/docs/2.4/mod/mod_http2.html

警告

此模块为实验性模块。与其他标准模块相比,其行为、指令和默认值在不同版本之间可能会有较大变化。建议用户查阅“CHANGES”文件以了解可能的更新。

最初有很多变化和稳定性修复。然而最近变化的速度已经放慢下来,我个人觉得它现在很稳定,但目前只在一个小型网站上运行。

答案2

非常感谢,简单的升级似乎就解决了问题。我有点不好意思没有早点升级。

谢谢

汤姆

相关内容