Varnish: Uma camada de velocidade

O objetivo deste trabalho é apresentar ao leitor a ferramenta de proxy reverso Varnish, mostrar suas principais características e averiguar seu desempenho através de testes de benchmark. Nesta última fase foram feitos testes comparativos entre o Varnish e o Squid, em que ficou patente do desempenho superior do Varnish em todos os testes executados.

[ Hits: 71.315 ]

Por: Perfil removido em 10/05/2010


Conclusão



Foram apresentados, neste trabalho, testes de benchmark onde foram observados diversos aspectos em que a ferramenta Varnish superou, em desempenho, com folga, a ferramenta de proxy Squid. Estas conclusões levam a crer que, devido ao seu grande desempenho, seu uso pode impactar em uma redução imediata de custos com servidores, como foi ficou patente nos depoimentos de Mullenweg [9] da Wordpress.com, em que a utilização dos serviços de cache tem contribuído para a redução dos custos com o serviço do serviço de cloud computing Amazon S3, e no depoimento de Berg [7] da VG Multimédia, onde o uso do Varnish reduziu a necessidade de servidores Squid da empresa de 12 para somente 2 com o Varnish.

O Varnish também se mostrou uma ferramenta com uma poderosa capacidade de configuração, permitindo a realização de cache em páginas com cookies, variáveis get ou post. Situações que outros servidores de cache simplesmente descartariam e repassariam a requisição para o servidor Web, no Varnish, são colocadas em cache. Aliado a isto, a tecnologia ESI permite o tratamento de regiões de uma mesma páginas com regras de cache diferentes, possibilitando uma escalabilidade antes impossível para aplicações Web.

Embora os testes apresentados tenham utilizado como massa de dados somente arquivos estáticos e um portal Zope-Plone, qualquer tipo de aplicação Web pode se beneficiar desse sistema de cache. Para aplicativos pesados em PHP como o Expresso ou ambientes em Java desenvolvidos com o Demoiselle, esse tipo de cache pode representar um ganho substancial de desempenho.

Sem dúvidas, o Varnish é um divisor de águas no que tange a sistemas de proxy reversos. As facilidades oferecidas tornam esse tipo de serviço vital para a garantia de níveis de excelência em quaisquer tipo de aplicações Web. Os desempenho, escalabilidade e disponibilidade oferecidos por essa ferramenta são benefícios grandes demais para se ignorar.

Bibliografia

1. O'REILLY, Tim. What Is Web 2.0, 30 set. 2005. Disponível em <http://oreilly.com/web2/archive/what-is-web-20.html>. Acesso em: 19 ago. 2006.

2. OKAMA, Luis Henrique; HEEN, Tollef Fog; CARVALHO, Mario. HTTP Accelerator, 25 jul. 2009. Disponível em <http://www.slideshare.net/lokama/globocom-varnish>. Acesso em 18 ago. 2009.

3. FUG-BR - GRUPO BRASILEIRO DE USUÁRIOS DE FREEBSD. Varnish Cache - Servidor de Proxy Reverso com Cacheamento, 2006. Disponível em <http://www.fug.com.br/content/view/187/54/>. Acesso em 18 ago. 2009.

4. WIKIPÉDIA. Reverse Proxy. Desenvolvido pela Wikimedia Foundation. Apresenta conteúdo enciclopédico. Disponível em: <http://en.wikipedia.org/w/index.php?title=Reverse_proxy&oldid=306870526>. Acesso em: 23 ago. 2009

5. KAMP, Poul-Henning. Vídeo de Apresentação Técnica do Varnish, . 1 Arquivo de Vídeo (104 min.). Disponível em <http://www.nuug.no/pub/video/published//20060919-varnish.mpeg>. Acesso em 18 ago. 2009.

6. KAMP, Poul-Henning. Notes From the Architect. Disponível em <http://varnish.projects.linpro.no/wiki/ArchitectNotes>. Acesso em 18 ago. 2009.

7. BERG, Anders. Varnish, 2006. Disponível em <http://www.slideshare.net/vishnu/varnish-reverse-proxy>. Acesso em 18 ago. 2009.

8. HAGELUND, Ingvar. The usage of Varnish revisited, 20 mai. 2009. Disponível em <http://ingvar.blog.linpro.no/2009/05/20/the-usage-of-varnish-revisited/>. Acesso em 18 ago. 2009.

9. MULLENWEG, Matt. S3 News. 26 out. 2007. Disponível em <http://ma.tt/tag/wordpresscom/>. Acesso em: 19 ago. 2006.

10. SCHOFMANN, Max. Varnish, Bling Bling for Web-Apps. Munique, 2009. Disponível em <http://www.slideshare.net/schoefmax/caching-with-varnish-1642989>. Acesso em 18 ago. 2009.

11. LINPRO. Varnish Features Explained. Disponível em <http://varnish.projects.linpro.no/wiki/VarnishFeatures>. Acesso em 18 ago. 2009.

12. KAMP, Poul-Henning. Varnish Http Accelerator, 23 mar. 2007. Disponível em <http://www.ukuug.org/events/spring2007/programme/varnish_tech.pdf>. Acesso em 18 ago. 2009.

13. WIKIPÉDIA. Benchmark_(Computação). Desenvolvido pela Wikimedia Foundation. Apresenta conteúdo enciclopédico. Disponível em: <http://pt.wikipedia.org/w/index.php?title=Benchmark_(computa%C3%A7%C3%A3o)&oldid=13414953>. Acesso em: 23 ago. 2009.

14. LI, Cherife. Benchmark Caching of Varnish and Squid Again, abr. 2008. Disponível em <http://dotimes.com/iscale/2008/04/benchmark-caching-of-varnish-and-squid-again.html>. Acesso em 18 ago. 2009.

15. SCOTT, Joseph. WordPress Performance & Scalability, 24 abr. 2009. Disponível em <http://josephscott.org/projects/slides/wp-perf-scale.pdf>. Acesso em 18 ago. 2009.

16. WIKIPÉDIA. Web 2.0. Desenvolvido pela Wikimedia Foundation. Apresenta conteúdo enciclopédico. Disponível em: <http://pt.wikipedia.org/w/index.php?title=Web_2.0&oldid=16499626>. Acesso em: 23 ago. 2009.

Página anterior    

Páginas do artigo
   1. Introdução
   2. Parte 1 - Características do Varnish
   3. Parte 2 - Testes de benchmark
   4. Conclusão
Outros artigos deste autor

Quero usar o Baiacu em casa, mas será que eu posso?

Criando um álbum de fotos no Linux

Relato I Fórum da Revista Espírito Livre

Pós-instalação do Arch Linux

Adaptador Bluetooth no Slackware

Leitura recomendada

Desenvolvimento para deficientes visuais na plataforma Linux

Operadoras de Banda Larga com Medição de Velocidade

FreeBSD + FreeRadius + MySQL

Tomcat com URL limpa

Configuração básica de rede + proxy Linux

  
Comentários
[1] Comentário enviado por tomassoni em 12/05/2010 - 14:10h

Muito legal.
Gostaria de saber se você já o utilizou na prática, se teria um exemplo de regras.

[2] Comentário enviado por removido em 12/05/2010 - 14:39h

Participei de alguns testes na época do lançamento do Blog do Planalto em que pudemos por a prova esta ferramenta em uma rede de alta velocidade. Existem varios exemplos de configuração no site do projeto http://varnish-cache.org, mas depende do soft que for utilizar. Por exemplo, utilizei com um sistema de blogs wordpress/buddypress e na epoca eu checava a existência de um cookie para definir se iria fazer cache.

[3] Comentário enviado por Gilmar_GNU/Slack em 13/05/2010 - 14:00h

TO curtindo o lance de aprender sobre o varnish.
Pois eu estava lá na palestra na Area 1.
O Varnish tem uma vantagem bem interessante em cima do Squid.

[4] Comentário enviado por dolivervl em 13/05/2010 - 18:42h

Muito bom, eu estava procurando um artigo desse aqui no VOL há algum tempo atrás, mas não encontrei. Hoje já tenho meu proxy com varnish rodando.

[5] Comentário enviado por jr.jorro em 14/05/2010 - 14:34h

E para controle de internet ? Num ambiente que envolve muitos usuários ?

Gostaria de saber as vatagens do Squid sob o varnish e as desvantagens do varnish. Se alguém puder me dar uma luz, agradeço.

[6] Comentário enviado por removido em 14/05/2010 - 15:15h

Serviço de hospedagem de sites tam uma fila de atendimento, se o seu servidor consegue atender rapidamente, esta fila se mantem pequena, se ele engasga ela cresce e derruba o serviço. O varnish serve para acelerar o atendimento às requisições mantendo as páginas em memoria.

O squid perde de longe para esta belezinha, ele não consegue gerenciar corretamente a memoria nem distribuir seus jobs pelos núcleos do computador.

[7] Comentário enviado por mosoli em 14/05/2010 - 17:19h

Cara!
Excelente artigo!

[8] Comentário enviado por schenkmh em 25/05/2010 - 09:17h

Estou usando a versão 2.1 do Varnish baixada do repositório do Ubuntu. Segui algumas configurações sugeridas no site http://varnish-cache.org, porém são para versão 2.0 e estou enfrentando algumas dificuldades devido a interpretação de comandos por esta versão. Não tenho grande experiência nas linguagens C e Perl. Alguém pode me ajudar? Segue o erro retornado:

root@marco-desktop:/home/marco# varnishd -a :80 -T localhost:6082 -f /etc/varnish/teste.vcl -s file,/var/cache/varnish.cache,512M
storage_file: filename: /var/cache/varnish.cache size 512 MB.
Message from VCC-compiler:
Invalid assignment operator ';' only '=' is legal for strings
Message from C-compiler:
./vcl.1P9zoqAU.c: In function ‘VGC_function_vcl_fetch’:
./vcl.1P9zoqAU.c:736: error: expected ‘)’ before ‘;’ token
./vcl.1P9zoqAU.c:738: error: invalid use of void expression
./vcl.1P9zoqAU.c:738: error: expected ‘;’ before ‘}’ token
Running C-compiler failed, exit 1
VCL compilation failed

Valeu!

[9] Comentário enviado por removido em 25/05/2010 - 09:48h

Fiz a instalação do Varnish 2.1 no Ubuntu Lucid e a instalação padrão esta funcionando blz, tb testei este comando q vc enviou mudando somente o aquivo teste.vcl para default.vcl q é o padrão instalado e também funcionou normal. A falha esta em seu vcl, coloque o conteúdo padrão nele conforme abaixo e teste novamente para ver se funciona. Qualquer coisa meu mail é alexandrehaguiar arroba gmail.com.

backend default {
.host = "127.0.0.1";
.port = "8080";
}

[10] Comentário enviado por schenkmh em 25/05/2010 - 10:15h

Olá Alexandre

Não funcionou. Enviei um e-mail com meu arquivo vcl, ok!
Obrigado pela ajuda!

[11] Comentário enviado por pokado em 17/08/2010 - 14:55h

tinha lido sobre as vantagens dele sobre o squid... mas será que tem como fazer ele trabalhar como cache web normal (nao reverso) ?

[12] Comentário enviado por removido em 17/08/2010 - 17:11h

Ele foi feito para trabalhar especificamente como proxy reverso e não tem outros recursos que o squid possui necessários para uma ferramenta de proxy.

[13] Comentário enviado por FireBird em 10/05/2011 - 16:41h

Cara... Onde fica e como faço pra limpar o cache do varnish? Sabe me falar?

[14] Comentário enviado por fabriciocscte em 18/02/2013 - 17:21h

Eu queria saber se utilizando o varnish com a seguinte configuração eu tenho um acréscimo na segurança.
Eu tenho muitos ataques a sites wordpress, então pensei em isolar os clientes em um servidor X e liberar o acesso para o servidor Y que hospeda o varnish. Assim, apenas o servidor X terá acesso aos servidor Y(meus clientes wordpress).

Como esses ataques acontecem de forma automática e infectam com malware, queria saber se essa configuração isola os PHPs dosmeus sites wordspress.


vlw

[15] Comentário enviado por removido em 18/02/2013 - 21:09h

O varnish pode ajudar em ataques de negação de serviço mas não em ataques com bots.

Você pode tentar proteger as páginas wp-login e wp-admin com uma autenticação básica adicional para evitar que os scripts funcionem... pode até interligar esta autenticação básica com um sistema de firewall como o csf (http://configserver.com/cp/csf.html) e fazer com que o usuário fique bloqueado apos certo número de erros. Cuidado no entanto para não bloquear seus clientes;)

O melhor mesmo seria bloquear estes links para acesso somente por uma rede especifica...


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts