Benchmarks
Como afirmei anteriormente, instalei um Wordpress no Apache httpd importei um xml de exemplo com algumas entradas.
Os benchmarks foram feitos a partir de uma máquina remota, com o Apache bench. As ligações são persistentes, com 1000 requests e uma concorrência de 100. Coloquei para fazer log para um ficheiro, para depois gerar dois gráficos com o “gnuplot”.
Ficam aqui os parâmetros:
ab -n 1000 -c 100 -k -g "ficheiro" "url"
Fiz benchmark ao index da página e a uma página com uma entrada.
O index é composto com 13 entradas e tem o tema original do Wordpress 3.2.
A página contêm texto, uma lista e comentários.
Resultados gerais
Index
Página
Para quem quiser só ver um resumo dos testes, aqui fica um gráfico que no eixo horizontal tem o número de “requests” e no eixo vertical o “response time”, isto é, o tempo que o Apache httpd e o Varnish demoram a responder aos pedidos.
Como é possível verificar, o tempo de resposta com o Varnish é muito inferior e perto dos 1000 pedidos, o Apache httpd começa a perder performance exponencialmente, enquanto que o Varnish não.
Requests por segundo
Index
Página
Requests falhados
Index
Página
Request mínimo
Index
Página
Request médio
Index
Página
Request máximo
Index
Página
Percentagem do uso do processador
Index
Página
Estes valores foram tirados com o “htop” no servidor
Utilização de memória Ram
Index
Página
Estes valores foram tirados com o “htop” no servidor.
Podemos verificar, que em quase todos os benchmarks, o Varnish responde de uma forma mais rápida, suporta melhor o “load” e consome menos recursos que o Apache httpd estando sozinho a servir as páginas.
A excepção que confirma a regra é o Apache httpd ter servido o request mínimo, no Index, mais rápido que o Varnish, mas tendo em conta a globalidade dos testes, este valor tem pouca importância, visto que nos requests seguintes foi muito mais rápido.
Conclusão
Acompanho a evolução do Varnish desde a versão 2.0 e a sua qualidade só tem vindo a aumentar, o que se nota com os sites importante que usam este produto.
A versão 3.0 introduz mais opções na linguagem VCL, melhor performance e, muito importante, a possibilidade de se poder criar módulos em C.
A utilização de “reverse proxys” por parte de grandes sites é quase inevitável e o Varnish é uma das boas soluções que se pode adoptar.
A sua eficácia depende de vários pontos. Dos recursos que tem disponíveis, das regras que lhe são passadas e se o site é muito ou pouco dinâmico.
Em conteúdo estático a sua performance é realmente impressionante e a sua flexibilidade, especialmente com o aparecimento de módulos é cada vez melhor.
No mundo open source, existem verdadeiras pérolas e considero que o Varnish é uma delas.