Esse é um comportamento comum em data centers. As vezes que seu tempo de resposta é lento corresponde ao que é comumente chamado de Janela de Lote. Esse é um período em que a atividade do usuário deve ser baixa e os processos em lote podem ser executados. Backups também são feitos durante este período. Essas atividades podem sobrecarregar os recursos do servidor e das redes, causando problemas de desempenho, como você vê.
Existem alguns recursos que podem causar problemas:
- Carga alta da CPU. Isso pode fazer com que o apache espere que uma fatia de tempo processe a solicitação.
- Alto uso de memória. Isso pode liberar buffers que permitem que o apache sirva recursos sem lê-los do disco. Também pode causar paginação / troca de funcionários do apache.
- Alta atividade de disco. Isso pode fazer com que a atividade de E / S do disco seja enfileirada com os atrasos correspondentes na exibição do conteúdo.
- Alta atividade de rede. Isso pode fazer com que os pacotes sejam enfileirados para transmissão, aumentem as tentativas e degradem o serviço.
Eu uso sar
para investigar como esse. atsar
pode ser usado para reunir sar
dados em arquivos de dados diários. Eles podem ser examinados para ver como é o comportamento do sistema durante o dia, quando o desempenho é normal, e durante a noite, quando o desempenho é variável.
Se você estiver monitorando o sistema com munin
ou algum outro sistema que reúna e represente graficamente a utilização de recursos, você poderá encontrar alguns indicadores. Ainda acho sar
mais preciso.
Existem ferramentas como nice
e ionice
que podem ser aplicadas a processos em lote para minimizar o impacto. Eles são eficazes apenas para problemas de CPU ou E / S. É improvável que resolvam problemas com memória ou atividade de rede.
Mover a atividade de backup para uma rede separada e reduzir a contenção de rede. Algum software de backup pode ser configurado para limitar a largura de banda que será usada. Isso poderia resolver a contenção de rede.
Dependendo de como os processos em lote são acionados, você pode limitar o número de processos em lote em execução paralelamente. Isso pode, na verdade, melhorar o desempenho dos processos em lote, pois provavelmente eles estão enfrentando a mesma contenção de recursos.