我有一个相当低预算的VPS(1GB RAM + 2个CPU)来运行几个(5-10个)不同的小网站(包括静态和dynamic)。 这些网站的stream量非常低(所有网站的访问量平均为500次)。
我遇到的问题是,对于HTML文件(和dynamic页面),apache2非常慢,但对其他静态内容却不是这样:静态html文件只有16个请求/秒,dynamic页面(wordpress) (如图像和.txt)在400请求/秒。
我正在用mod_php运行apache2,并且正在寻找一个解释,为什么一个html文件的加载时间比完全相同的文件的.txt副本长25倍?
使用apachebench进行testing(在同一台服务器上运行):
$ ab -n 1000 -c 30 http://mysite/index.html ... Concurrency Level: 30 Time taken for tests: 58.987 seconds Complete requests: 1000 Failed requests: 962 (Connect: 0, Receive: 0, Length: 962, Exceptions: 0) Write errors: 0 Total transferred: 6619655 bytes HTML transferred: 6337655 bytes Requests per second: 16.95 [#/sec] (mean) Time per request: 1769.599 [ms] (mean) Time per request: 58.987 [ms] (mean, across all concurrent requests) Transfer rate: 109.59 [Kbytes/sec] received ...
与
$ ab -n 1000 -c 30 http://mysite/index.txt ... Concurrency Level: 30 Time taken for tests: 2.314 seconds Complete requests: 1000 Failed requests: 0 Write errors: 0 Total transferred: 6564000 bytes HTML transferred: 6284000 bytes Requests per second: 432.19 [#/sec] (mean) Time per request: 69.414 [ms] (mean) Time per request: 2.314 [ms] (mean, across all concurrent requests) Transfer rate: 2770.40 [Kbytes/sec] received ...
我注意到,.html文件的apachebench给了我很多长度失败,而.txt没有。 然而,我没有解释这个,因为.html文件的内容纯粹是静态的(除了一些javascript,ab不parsing)。
额外:我调整了maxClients,以便服务器不交换:
StartServers 5 MinSpareServers 5 MaxSpareServers 10 ServerLimit 20 MaxClients 20 MaxRequestsPerChild 5000 KeepAlive Off HostnameLookups Off
我也禁用了apache访问日志,并且AllowOverride等于None
在对html文件进行压力testing时,cpu不会超过20%
什么可能导致这种行为?