quinta-feira, 18 de fevereiro de 2010

Sobre a performance ao logar os acessos do Apache no MySQL.

Alguns leitores, me questionaram a respeito de uma provável queda na performance ao fazer o Apache gravar os logs no MySQL. Concordava em gênero, número e grau até ler um pouco da documentação.

Continuar lendo...



O que me motivou a implementá-lo e a escrever este artigo, foram as possibilidades por um log estar gravado no banco de dados: a administração dos logs facilitada.

Quando se possui clusters de servidores Apache e os logs sendo gravados diretamente para uma base de dados, você não precisará concatenar os logs de todos os servidores, principalmente se precisar fazer uma auditoria de acessos ou algo do gênero. Fazer filtros em um único arquivo é simples. Mas se você tiver dois ou mais servidores, praticamente você precisará montar um pequeno script para pegar a informação que você precisa. Dependendo do filtro que você precise, pode ser necessário conhecimento de expressões regulares, alguns malabarismos e por aí vai. Já num banco de dados a coisa pode mudar de figura.

Já no que diz respeito à performance, os desenvolvedores utilizaram a ferramenta Apache Bench para os testes de performance.

Conforme podemos, 139 hits por segundo equivalem a mais de 12 milhões de hits por dia para a máquina utilizada nos testes. Acredito que seja um número bem expressivo.

Conclusão

Não quero impor que esta é a solução que irá resolver todos os problemas com logs dos clusters de servidores web. Apenas acredito pode ser uma verdadeira "mão-na-roda" do administrador de servidores e que pode facilitar e muito a sua vida.

Fica aí a dica.

Nenhum comentário: