Algumas coisas que você pode verificar:
- O status "Leitura" significa simplesmente que o Apache está lendo a solicitação do cliente remoto. No FireBug, ou em uma ferramenta semelhante, você pode ver os cabeçalhos "request" enviados. Estes são geralmente muito pequenos e não devem demorar muito para serem processados. Um monte de slots Apache parando no estado "read" indica algum tipo de problema em algum lugar.
- Use um comparativo de mercado como o ApacheBench (
ab
) para testar a velocidade dos arquivos estáticos. Se você executá-lo no servidor, você deve obter uma taxa de solicitação muito alta (ex: 10-20k / seg), a menos que algo esteja errado. Você também pode executá-lo remotamente para ver as velocidades de diferença devido à distância e velocidade da rede. - Tem certeza que a velocidade da rede do cliente ou servidor não é um problema? O teste de benchmark deve ser capaz de confirmar isso e dar a você uma velocidade superior para isso. Por exemplo, se o seu servidor estiver apenas em uma conexão de 10 Mbps, ele poderá fornecer apenas cerca de 25 arquivos / segundo se eles tiverem 50 kb de tamanho.
- Verifique o status do servidor do Apache e os
top
eiostat
de seu servidor para verificar sinais óbvios de uso excessivo na CPU, memória ou IO. Certifique-se de que oMaxClients
do Apache não esteja definido como muito alto ou muito baixo (ambos são ruins por diferentes motivos). - Considere usar um servidor da Web alternativo para arquivos estáticos, como lighttpd ou nginx. Dependendo de como você tem a configuração do Apache, você pode economizar uma boa quantidade de memória / CPU, permitindo que o Apache sirva os arquivos dinâmicos e algo mais que os arquivos estáticos. Por exemplo, nos meus servidores, o lighttpd pode servir arquivos estáticos de até 20-30k / s com apenas 50 MB de RAM, enquanto o Apache pode "fazer" apenas 10-20k / s com 500 MB (o uso de memória é a maior vantagem).
- Verifique os logs do Apache, do sistema e do aplicativo em busca de mensagens de erro relevantes.
- Outra coisa a verificar é o número de solicitações recebidas no Apache. Se você obtiver um pico repentino nas solicitações recebidas, poderá obter um grande número de "Leituras", pois o servidor tentará lidar com todas elas. Isso pode ser um pico normal ou pode ser uma forma de DoS (acidental ou mal-intencionada). Se você ver muitas conexões múltiplas do mesmo IP no status do servidor, ou via
netstat
, pode ser uma causa possível.