Apache HTTP localhost 在 macOS Monterey 上随机需要 5 秒,但在 HTTPS 上速度很快

问题描述 投票:0回答:3

我尽可能地等待,但最终不得不从莫哈韦升级。
我知道有些东西会不必要地损坏。当然,它做到了。

较大的文件(超过 100k)随机需要 5 秒才能加载。它并不总是相同的文件,也不是每次都相同,并且它只发生在 HTTP Apache 中(尝试过端口 80 和 8080)。它在 Apache HTTPS/443 和 HTTP/80 上的 Python SimpleHTTPServer 中运行良好。

我尝试过的事情:

  • 这不是 DNS。它发生在 http://127.0.0.1/large.jpg
  • 这与浏览器无关,它发生在curl上。
  • 这不是 IPv6。关掉它,同样的交易。
  • 这不是MTU,尝试了1492,同样的事情(你现在可以看到我的绝望了)
  • 已经通过
    brew reinstall httpd
    重新安装了它。没什么。

重现步骤:

i=1; while [ $i -lt 50 ]; do time curl http://127.0.0.1/large.jpg > /dev/null; ((i++)); done

最终会在 96% 时停顿 5 秒:

96  395k   96  382k

另一个文件:

i=1; while [ $i -lt 50 ]; do time curl http://127.0.0.1/jquery-latest.min.js > /dev/null; ((i++)); done

最终停在85%

85 95786   85 81390

httpd -v
服务器版本:Apache/2.4.52 (Unix)
服务器建成:2021年12月20日13:37:44
通过brew安装

macOS 蒙特利 12.1 (21C52)

我失去了理智,非常感谢任何帮助。
谢谢

macos apache http localhost macos-monterey
3个回答
10
投票

我想我找到了解决方案。通过添加以下内容来关闭“保持活动”:

KeepAlive Off

到你的http.conf

更好的答案是理解为什么 Keep Alive 行为不当并修复它,但由于它在我的本地开发计算机上,所以这并不重要。


2
投票

多亏了这个帖子,我已经能够在 apache 的 bugzilla 上提出问题,并且该错误已在 httpd 2.4.54 中修复并发布,该版本已经在brew上可用:)


0
投票

哇-这(KeepAlive Off)在我的案例中取得了多大的进步(ubuntu20 apache2 -v 2.4.42)

# apache2 -v
Server version: Apache/2.4.41 (Ubuntu)
Server built:   2023-03-08T17:32:54

我正在解决为什么随机 jpg 图像加载需要约 1 秒 - 4 秒的时间,而 90% 的图像加载时间不到 200 毫秒。服务器是企业级 ssd rd1,硬件很棒,负载很少超过 0.10,(尝试调整很多 apache 选项)所以它没有意义 - 将 keep active 从默认的 on 设置为 off 立即解决了这个问题!

作为一个额外的数据点,下面是 apache 记分板的 Grafana 图(/mod_status 的服务器状态) - 你可以看到蓝线是我设置 KeepAlive Off (并重新启动 apache)的地方 - 等待时间似乎有所增加连接数,当然还有 KeepAlive 连接数的下降):

谢谢

© www.soinside.com 2019 - 2024. All rights reserved.