i使用ab
作为ab -n 10000 -c 1000 http://example.com/path
测试我的网站,我得到的响应为160 #/second
。但是,当我作为ab -n 10000 -c 1000 http://localhost/path
测试时,响应是完全不同的1500 #/second
。为什么?
通常,您不应在同一主机上运行负载生成器(ab
或任何其他工具),其中正在测试的应用程序中,作为负载测试工具本身的应用程序本身非常有资源,并且您可能会遇到在测试和负载生成器的应用时,正在为同一CPU,RAM,网络,磁盘,交换等苦苦挣扎。
因此,我建议您在Intranet中的另一个主机中运行ab
,这样,您将能够获得更清晰的结果而不会上述相互干扰。请记住,使用VMSTAT,IOSTAT,TOP,SAR等监视基线OS健康指标。
您可能还需要尝试一个更高级的工具,因为ab
具有有限的负载测试功能,请查看开源负载测试工具:您应该使用哪种?文章有关最突出的免费和开源负载测试解决方案的更多信息(所有列出的工具都是跨平台,因此您可以在Linux上运行它们)
据我了解,您正在2种不同的配置中测试同一网站:
- http://example.com/path,它正在您本地计算机测试远程网站,
- http://localhost/path,正在测试本地计算机上网站的本地副本,或直接在托管网站的机器中进行测试。
测试远程网站涉及计算机和远程服务器之间的网络连接。在本地测试时,所有内容都通过回环网络接口,这可能比您的DSL Internet连接快几个数量级。