我在服务器上使用 ab 进行 Apache 基准测试时遇到了问题。基本上,所有结果的标准偏差都很高,导致结果无效。
这是一个示例结果集:
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 0
Processing: 25 33 81.0 27 1805
Waiting: 24 32 80.2 25 1785
Total: 25 33 81.0 27 1805
Percentage of the requests served within a certain time (ms)
50% 27
66% 28
75% 29
80% 30
90% 36
95% 47
98% 81
99% 105
100% 1805 (longest request)
我尝试了 remote/localhost,结果相同。知道问题出在哪里吗?
提前致谢。
答案1
您可以尝试以下几种常规方法:
- 隔离服务器-- 不要指望在处理其他请求的服务器上有准确的基准测试。理想情况下,您希望它只运行来自 ab 的请求。最佳时间是在重新启动服务器后,但请参阅下面的下一项....
- 缓存预热时间-- 服务器重启后,通过运行一次(或几次)基准测试来预热各种缓存并忽略结果,除非您想在结果中包含冷缓存的影响。根据具体应用程序的不同,这种“预热”可能只需加载一次页面,也可能需要更复杂的过程。
- 慢查询日志-- 如果使用 MySQL,您可以启用慢查询日志来查看是否有明显的查询或几个查询导致页面加载缓慢。
- 缩小原因范围-- 如果随机页面加载缓慢的问题仍然存在,最好的办法是缩小问题来源。具体方法取决于应用程序的复杂性,但可能涉及创建一个基本的测试应用程序、暂时注释掉代码或调整配置设置。