Na minha experiência, o sistema (sub) de registro Apache não vem com grande penalidade de desempenho da CPU, mesmo em servidores extremamente ocupados, vale a pena procurar por otimizações nesse caminho, então seus esforços de otimização provavelmente seriam mais recompensadores, se você Considere outros possíveis gargalos, como E / S e atraso de rede.
-
Primeiro, certifique-se de que
HostNameLookups
sejaOff
no seu arquivohttpd.conf
(ouhttpd-vhosts.conf
). Essa configuração, quandoOn
, adiciona um atraso significativo suficiente ao resolver nomes DNS que pode compensar para desativá-lo em servidores ocupados. Se você precisar resolver nomes de DNS para fins estatísticos e de rastreamento, recomendo usar resolvedores de DNS baseados em hardware (roteador, switch, firewall) que tenham capacidade de armazenamento em cache do DNS e que possam, em sua maioria, fazer isso de forma assíncrona , em seguida, crie um link para esses registros ao analisar dados de tráfego. -
Em segundo lugar, analise o desempenho de E / S do seu servidor e verifique se as gravações frequentes (o IIRC Apache realmente não lê nada a partir desses arquivos de log, apenas acrescenta a elas como um fluxo de arquivo) porcentagem de suas operações totais de I / O que seu servidor pode manipular. Em fusos ( HDD ), isso pode ser caro, então você pode considerar a possibilidade de espalhar esses registros para várias unidades físicas em vez de gravá-las em uma única unidade. Obviamente, se você estiver usando HDDs , alternando para SSDs é altamente recomendado, já que eles são capazes de IOPS muito mais elevados. Verifique também as sugestões de esta pergunta na falha do servidor .
-
Você também pode verificar se está apenas registrando solicitações de que realmente precisa. Frequentemente, as solicitações para alguns tipos de arquivo nem são necessárias ou podem ser movidas para outros logs mais simples que não consomem muito os recursos do sistema (ou seja, não exigem resolvedor de DNS, se você precisar desses dados registrados para outras solicitações). Tudo isso pode ser definido no arquivo de configuração do Apache e pode economizar um microssegundo ou dois em cada solicitação (que pode se acumular).
Outras sugestões podem ser balanceamento de carga, mover alguns dos arquivos acessados com mais frequência para outro local e criar sua própria CDN , e assim por diante, mas estes já estão fora do escopo da sua pergunta sobre o desempenho do arquivo de log do Apache.