ab
我使用as测试我的网站,ab -n 10000 -c 1000 http://example.com/path
并得到响应 as 160 #/second
。但是当我测试它时ab -n 10000 -c 1000 http://localhost/path
,响应完全不同1500 #/second
。为什么?
问问题
1219 次
2 回答
1
通常,您不应该ab
在被测应用程序所在的同一主机上运行负载生成器(或任何其他工具),因为负载测试工具本身非常占用资源,并且您可能会遇到被测应用程序和负载生成器正在为相同的 CPU、RAM、网络、磁盘、交换等。
所以我建议ab
从你内网的另一台主机上运行,这样你就可以在没有上述相互干扰的情况下获得更清晰的结果。请记住在被测应用程序和负载生成器端使用vmstat、iostat、top、sar等来监控基线操作系统健康指标——它应该让您更清楚地了解正在发生的事情以及感知负载的影响。
您可能还想尝试更高级的工具,因为ab
负载测试功能非常有限,请查看开源负载测试工具:您应该使用哪个?文章以获取有关最突出的免费和开源负载测试解决方案的更多信息(所有列出的工具都是跨平台的,因此您将能够在 Linux 上运行它们)
于 2017-02-28T14:35:12.423 回答
1
据我了解,您正在以 2 种不同的配置测试同一个网站:
- http://example.com/path,它正在从您的本地计算机测试远程网站,
- http://localhost/path,这是在本地机器上测试网站的本地副本,或者直接在托管网站的机器上测试。
测试您的远程网站涉及您的计算机和远程服务器之间的网络连接。在本地测试时,所有都通过环回网络接口,这可能比您的 DSL 互联网连接快几个数量级。
于 2017-02-28T15:31:00.300 回答