A História do Martelo…

Uma das coisas que mais gratificam profissionalmente é quando pequenas intervenções pontuais geram resultados enormes.

Atualmente estou executando um trabalho de consultoria para uma startup que enfrenta problemas de performance após um determinado volume de acessos simultâneos.

Depois de algumas reuniões e levantamento de dados, foi possível identificar dois pontos de gargalo e 4 pontos de melhoria, que possibilitarão o ganho de escalabilidade necessário para o crescimento vegetativo que a startup apresenta.

Nesta semana “atacamos o gargalo” do banco de dados, acrescentando uma camada intermediária com Memcached. A redução no número de querys no banco de dados foi absurda:

image

Já o Memcached, uma máquina com 2 COREs e 1.7Gb de RAM, está sobrando… Em média, 80% das requisições de banco são atendidas pelo Memcached (na estatística abaixo, estava em 93%):

image

Reservamos 1Gb de RAM para o Memcached, porém a utilização ainda não passou de 150Mbytes:

image

Nosso próximo passo é a melhoria – através de tunning de performance no PHP, com a adoção de NGinx + APC e a colocação de um cache em varnish para eliminar o gargalo do GlusterFS.

image

No gráfico acima, dá para perceber que o banco de dados deixou de ser um gargalo (cor “meio” marrom no gráfico) e o PHP, azul claro, é um dos que hoje estão com uma alta latência.

Na próxima semana pretendo postar o resultado das alterações para eliminação do gargalo de filesystem.

Até a próxima semana!

PS: Para quem não conhece a história do martelo (título do post), segue o link: http://bit.ly/10kkpjC