arquivo estático de desempenho do apache

1

Eu tenho um VPS de baixo orçamento (1 GB de RAM + 2 CPUs) para rodar alguns (5 - 10) sites pequenos diferentes (estáticos e dinâmicos). Esses sites têm tráfego (muito) baixo (média de 500 visitas únicas para todos os sites).

O problema que tenho é que o apache2 é muito lento para arquivos HTML (e páginas dinâmicas), mas não para outros conteúdos estáticos: arquivos estáticos html são manipulados em apenas 16 solicitações / segundo, páginas dinâmicas (wordpress) outro conteúdo estático (como imagens e .txt) a 400 solicitações / segundo.

Estou executando o apache2 com o mod_php e estou procurando uma explicação do motivo pelo qual um arquivo html leva 25 vezes mais tempo para carregar do que uma cópia .txt do mesmo arquivo?

Testa com o apachebench (executado no mesmo servidor):

$ 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
...

versus

$ 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
...

Percebi que o arquivo apachebench do arquivo .html me dá muita falha, enquanto o .txt não. Eu não tenho nenhuma explicação para isso, no entanto, como o conteúdo dos arquivos .html são puramente estáticos (exceto alguns javascript que ab não analisa).

Extra: Eu ajustei o maxClients para que o servidor não esteja trocando:

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

Eu também desativei o log de acesso do apache e AllowOverride é igual a None

Durante o teste de estresse dos arquivos html, a cpu não atinge mais de 20%

O que poderia causar esse comportamento?

    
por Chris 11.04.2014 / 14:45

0 respostas