apache 性能静态文件

apache 性能静态文件

我有一个相当低预算的 VPS(1GB RAM + 2 个 CPU),用于运行几个(5-10 个)不同的小型网站(静态和动态)。这些网站的流量(非常)低(所有网站的平均独立访问量为 500)。

我遇到的问题是 apache2 对于 HTML 文件(和动态页面)的处理速度非常慢,但对于其他静态内容的处理速度却不慢:静态 html 文件的处理速度仅为每秒 16 个请求,动态页面(wordpress)的处理速度约为其一半,而其他静态内容(如图像和 .txt)的处理速度为每秒 400 个请求。

我正在运行带有 mod_php 的 apache2,并且想了解为什么 html 文件的加载时间比完全相同文件的 .txt 副本长 25 倍?

使用 apachebench 进行测试(在同一台服务器上运行):

$ 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 文件的内容是纯静态的(除了一些 ab 无法解析的 javascript)。

额外:我已经调整了 maxClients 以便服务器不会交换:

StartServers 5
MinSpareServers 5
MaxSpareServers 10
ServerLimit 20
MaxClients 20 
MaxRequestsPerChild 5000
KeepAlive Off
HostnameLookups Off

我还禁用了 apache 访问日志并且 AllowOverride 等于 None

在对 html 文件进行压力测试期间,CPU 不会超过 20%

什么可能导致这种行为?

相关内容