Já faz um tempo que estou querendo usar um Raspberry Pi como cache de dns na rede local. Mas afinal quantas requisições por segundo vindas do cache ele consegue entregar? Irei usar 3 softwares de dns, o vovô bind, dnsmasq e o relativamente "novo" unbound. Vamos nos focar no desempenho do cache em sí, mas inevitavelmente existem diversas variáveis que influenciam os testes, como alguns domínios não existentes sendo requisitados novamente, tempo de resposta variável do servidor como forward ( do ISP ), recriar um cenário real é relativamente difícil e a cada execução do mesmo teste os resultados encontram variações. Iremos produzir testes básicos para ter ao menos uma noção de como a banda toca.
Os servidores foram configurados com forward para o dns do meu ISP, os testes iniciais foram feitos com 5000 requisições usando repetidamente 100 domínios variados A,AAAA,MX,PTR, antes de cada teste foi feito o carregamento do cache.
O software utilizado para o benchmark é o dnsperf.
As versões dos respectivos softwares são as seguintes:
BIND 9.8.4
Dnsmasq 2.62
Unbound 1.4.17
Dnsperf 2.0
O Raspberry Pi é a versão B de 256MB rodando Raspbian.
Observação: o máximo de uso do Dnsmasq na maioria dos testes não passou de 30% mesmo após alguns tweaks.
Vamos aos resultados, clique para ampliar:
Requisições por segundo |
Latência média |
Agora testes com overclock, com o Raspberry Pi rodando a 800mhz:
Requisições por segundo, 800mhz |
Latência Média, 800mhz |
Em relação a frequência stock, BIND e Dnsmasq não obtiveram um grande aumento no desempenho, mas o Unbound conseguiu entregar 202 requisições a mais do que em stock.
Teste prolongado com 20000 requisições, também com overclock:
Requisições por segundo, 800mhz |
Latência Média, 800mhz |
Aqui o Dnsmasq permanece com resultados similares, BIND obteve 65 requisições a mais com latência média de 0,02 a menos e o Unbound com 232 a mais e a latência média de 0,009 a menos que o anterior.
Apesar do teste básico(mas que tomou um bom tempo) podemos concluir que se sua rede é pequena e não
necessita de tantas requisições, o Raspberry Pi pode sim segurar a barra. Vimos também que o Unbound tem um excelente desempenho e que inclusive aumentou consideravelmente ao fazer overclock no Raspberry Pi.
Dica: Use o dnscrypt http://networkfilter.blogspot.com.br/2012/12/dnscrypt-on-raspberry-protect-your.html
ResponderExcluirMuito boa dica, obrigado.
ExcluirOla czar, se possível acrescente ao post as configurações que você usou em cada ambiente.
ResponderExcluirOpa, acabei esquecendo desse(comentário), então, eu não postei as configurações pois elas foram praticamente padrões, unica coisa que me recordo de ter modificado para o teste ser justo foi o tamanho do cache no Dnsmasq.
ExcluirNos últimos 2 gráficos, imagem x legenda, estão invertidas ...
ResponderExcluirNice!! =]
Obrigado, corrigido!
Excluir