我正计划部署一个django供电网站.但我对Web服务器的选择感到困惑,其中包括apache,lighttpd,Nginx等.
我已经阅读了一些关于每种选择的性能的文章.但似乎没有人同意.所以我想知道为什么不自己测试性能?
我找不到有关性能测试Web服务器的最佳方法的信息.所以我的问题是:
>有没有简单的方法来测试没有生产站点的性能?
>或者我可以使用一种方法来模拟繁忙的交通以进行公平的测试吗?
>我如何保持我的测试公平并接近生产情况?
测试结束后,我想弄明白:
>为什么有人说Nginx在提供静态文件时性能更好.
>每个Web服务器的cpu和内存需求.
>我最好的选择.
解决方法:
像ab这样的工具通常用于测试您可以同时从一系列请求中获取多少负载,以及cacti / munin /您的系统监控工具或您可以在系统负载和数据上生成数据的选择.请求/秒.这个问题是很多人基准测试没有意识到他们需要请求很多不同的请求,因为代码的不同部分执行它需要不同的时间.分析和基准测试代码而不是请求也很重要,很多人都有already done so for django,benchrun也不是一个坏工具.
另一个问题是每个页面视图需要多少HTTP请求.请求数量越少,处理速度越快是拥有可以承受大量流量的网站的关键,因为您可以更快地完成和关闭连接,更快地为新网站分配资源.
就Web服务器的一般速度而言,不言而喻,代理服务器(在您的端部反向运行)总是比具有静态内容的Web服务器执行得更快.至于Apache vs Nginx关于你的django应用程序,似乎mod_python确实比Nginx / lighty FastCGI更快,但这并不奇怪,因为CGI,无论任何加速速度仍然很慢.如果你做得对,在网络服务器上执行和缓存代码并让它管理它总是更快(mod_perl vs使用CGI,mod_PHP vs CGI等).