Não vou mentir e dizer que não estava com o medo do que aconteceria quando a nova versão fosse colocada em produção. Por mais que eu tivesse feito testes nos ambientes de desenvolvimento e alfa (com base de dados quase igual à de produção), eu não tinha clareza de como o novo sistema se comportaria numa situação real de alta demanda.

O sistema sofreu muitas modificações, a maioria delas mexendo em coisas fundamentais da arquitetura como o novo esquema de caching em memória e o armazenamento das informações das sessões também em memória. Pior, mais de 90% de todos os arquivos de código fonte sofreram algum tipo de modificação, o que mostra que as mudanças foram realmente bem profundas.

Bom, agora que já se passou uma semana e que o servidor foi submetido a níveis de demanda similares ao que era comum no passado, pude finalmente avaliar a eficiência da nova versão. Os resultados foram surpreendentes e me deixaram bastante feliz e tranquilo.

O gráfico a seguir mostra exatamente isto. Nele temos os gráficos de Demanda (hits/second) e Carga do Servidor (server load) nas últimas duas semanas. Como podemos ver a demanda nos últimos dias da última semana é comparável com a da semana anterior (e ainda temos um dia de pico com demanda maior do que a do passado). Olhando no gráfico de baixo, vemos que, apesar da demanda estar equivalente a da semana anterior, a carga do servidor está bem menor e sofrendo bem menos com o aumento gradativo da demanda (observada a cada dia da última semana). Observem que no último dia a demanda é praticamente o dobro da do dia anterior, mas a carga da CPU ficou praticamente inalterada.

Comportamento do Servidor

A coisa não para por ai. Ontem pude abservar que a demanda bateu no teto da configuração do meu servidor de web (em termos de processos simultâneos). Obviamente, isto estaria gerando algum tipo de fila, atraso e eventuais erros para os visitantes. Resolvi então liberar mais recursos para o servidor de web e instanciar mais alguns servidores de aplicação. para minha surpresa mesmo depois de fazer isto a carga do servidor continuou baixa e sofreu muito pouco com isto.

A conclusão é que, de fato, as modificações, principalmente no esquema de caching, tiveram um resultado muitíssimo bom e o servidor ficou bem aliviado.

Para os que se interessam, todo o BlogBlogs é desenvolvido em Ruby on Rails e o novo esquema de caching utilizado é o memcached da Danga Interactive. Ah, o servidor de cache (memcached) está no ar há mais de 20 dias e ainda não apresentou nenhum tipo de problema.

2 Comentários em "Como está o nosso servidor uma semana depois do BlogBlogs Release 1.4"

Comentar |   Feeds  |  TrackBack
  1. Renato Cunha

    21 de March de 2010 - 10:09

    “Fala Manoel! Como já comentei, essa nova versão do blogblogs está muito boa. Não sei se vc conhece a página “”The C10K problem”", mas o que você aprende lá é que para aumentar a concorrência, “”you must cache as much as you can”", então acho que o blogblogs está no caminho certo. Não sei como a página pode ajudar o bb, nem se vc a conhece, mas vai o link: http://www.kegel.com/c10k.html

    []’s”

    Responder

  2. Manoel Lemos

    21 de March de 2010 - 10:09

    Opa, valeu Renato, to vendo o material e to encontrando coisas interessantes. Boa dica!!!

    Responder

Comente esse artigo

ATENÇÃO! Os comentários nesse artigo servem para complementar o texto, concordando ou discordando, não refletindo porém a opinião do autor do site mas a de quem o escreveu. O autor se reserva o direito de apagar qualquer comentário ofensivo pessoal, a terceiros ou empresas, baseado em seu próprio julgamento. Caso alguém se sinta ofendido por algum comentário aqui presente, favor entrar em contato e terei o prazer de removê-lo.

 Não será publicado