我使用ab
作为ab -n 10000 -c 1000 http://example.com/path
来测试我的网站,并得到了160 #/second
的回复。但是,当我将其作为ab -n 10000 -c 1000 http://localhost/path
进行测试时,响应完全不同1500 #/second
。
为什么呢?
答案 0 :(得分:1)
通常,您不应该在测试中的应用程序所在的同一主机上运行负载生成器(ab
或任何其他工具),因为负载测试工具本身是非常耗费资源的,并且您可能遇到以下情况测试和负载生成器正在努力争取相同的CPU,RAM,网络,磁盘,交换等。
因此,我建议您从Intranet中的另一个主机运行ab
,这样您就可以获得更清晰的结果而不会产生相互干扰。请记住在正在测试的应用程序和负载生成器端使用vmstat,iostat,top,sar等监控基准操作系统运行状况指标 - 它应该让您更清楚关于发生了什么以及感知负载的影响是什么。
您可能还想尝试使用更高级的工具,因为ab
的负载测试功能非常有限,请查看Open Source Load Testing Tools: Which One Should You Use?文章,了解有关最主要的免费和开源负载测试解决方案的更多信息(所有列出的工具都是跨平台的,因此您可以在Linux上运行它们
答案 1 :(得分:1)
据我了解,您正在以两种不同的配置测试同一网站:
测试远程网站涉及计算机与远程服务器之间的网络连接。在本地测试时,所有都通过环回网络接口,这可能比DSL互联网连接快几个数量级。