Apache 2.4 在 HTTPS 和 HTTP 上明显随机缓慢

Apache 2.4 在 HTTPS 和 HTTP 上明显随机缓慢

您好,目前我在 Ubuntu 服务器 16.04 上的 HTTPS 上遇到了 apache 2.4.18 随机缓慢的情况。以下是观察结果、症状和信息:

  • HTTP 不会发生这种情况
  • 当 Apache 的已用插槽数达到 2k 左右时,这种情况不会发生/server-status。当插槽数达到 2.7k 以上时,这种情况就会发生(我甚至看到过插槽数达到 4.2k 的情况)
  • time curl -vI <url>卡住Trying <ip address>并在 1 到 30 秒内响应(平均处理时间为 0.2 秒,速度不慢时)。卡住时,tcpdump -n | grep '<ip address of request>'服务器中没有传入数据包:一旦 curl 启动,它们就会出现
  • apache 使用 mpm_prefork 并采用以下设置
StartServers                     10
MinSpareServers           50
MaxSpareServers          100
ServerLimit     20000
MaxRequestWorkers         20000
MaxConnectionsPerChild   0
  • apache 的/server-status页面显示了许多(数百个)空闲插槽
  • 服务器资源平均使用率:cpu 30%,负载平均 20,ram 使用 35%,磁盘 io r/w 非常低
  • 对 TCP 队列进行一些调整尝试(https://blog.cloudflare.com/syn-packet-handling-in-the-wild/
    • ss -n state syn-recv sport = :443 | wc -lcurl重复启动时显示最大数量为 130。当这个数字接近 130 时,似乎会挂起
    • net.core.somaxconn是 128,我确实用 将其设置为 4096 sysctl -w net.core.somaxconn=4096,然后重新加载了 apache
    • 我已经启动sysctl -w net.ipv4.tcp_max_syn_backlog=4096
    • ss -plnt sport = :443显示类似
State      Recv-Q Send-Q Local Address:Port               Peer Address:Port
LISTEN     0      128         :::443                     :::*                   users:(("apache2",pid=184902,fd=8),<4000 more apache processes>

老实说,我不知道队列调整是否有效。

我想首先找出如何解决问题,找出导致速度缓慢的部分,因此任何有关故障排除的提示都非常感谢。谢谢

编辑1

好吧,有一件事我可能没有尝试(为了避免生产停机):重新启动 Apache。我以为端口 443 的 TCP 队列是由系统处理的独自的,即不询问 Apache 它的限制是多少:错误的重启之后,队列终于可以自由地超过 130:事实上,在 apache 重启后的最初几秒内,队列就达到了 apache 的限制 511。

现在队列看起来没问题了,curl 不再卡住了Trying to connect;现在问题似乎出在 apache 方面,它即使在 HTTP 上看起来也很慢。

更多信息:

  • 我使用的请求 URL 由 apache VirtualHost 处理,它只发出一个Redirect
  • 以下是有关 SSL 缓存的信息
SSL/TLS Session Cache Status:
cache type: SHMCB, shared memory: 512000 bytes, current entries: 2176
subcaches: 32, indexes per subcache: 88
time left on oldest entries' objects: avg: 229 seconds, (range: 209...247)
index usage: 77%, cache usage: 99%
total entries stored since starting: 43916
total entries replaced since starting: 0
total entries expired since starting: 0
total (pre-expiry) entries scrolled out of the cache: 41740
total retrieves since starting: 586 hit, 83648 miss
total removes since starting: 0 hit, 0 miss

因此,请分享关于如何解决缓慢问题的任何想法。谢谢

相关内容