planejamento e gerenciamento de capacidade para sistemas distribuídos
TRANSCRIPT
Planejamento e Gerenciamento de Capacidade para Sistemas
DistribuídosRodrigo Campos
Agenda
• Motivações
• A Internet e o Linux
• Técnicas– Aquisição– Consolidação e Visualização– Forecasting
• Impacto dos Métodos Ágeis
• Virtualização e Cloud Computing
Motivações
• Nos tempos do mainframe, cada dólar investido tinha uma relação direta com a capacidade necessária, cada MIP deveria ser contabilizado e justificado
• Qualquer investimento em hardware tinha de ser minuciosamente estudado já que implicava muitas vezes em milhões de dólares
Motivações
• Com o advento da baixa plataforma os parâmetros de avaliação de desempenho foram menosprezados
• O baixo custo de hardware e a facilidade para entrega em produção desse tipo de equipamento fez com que os parques de máquinas crescessem de forma desordenada
Motivações
Motivações
Motivações
Motivações
Motivações
• Altos custos de manutenção de infra-estrutura
• Inviabilidade econômica e/ou física de construção de novos datacenters
• Necessidade contínua de expansão
• Necessidade de alinhamento pelo pico (lead strategy) para o mercado de internet
• Green Data Centers
Motivações
Guerrilla maxim 1.10: Capacity planning is not just about the future anymore. Today, there is a serious need to squeeze more
out of your current capital equipment.
Neil J. Gunther
More bang for the buck.
A Internet e o Linux
“I think there is a world market for maybe five computers”
Thomas J. Watson (?)
A Internet e o Linux
• Abertura comercial da internet: circa 1988
• Anúncio da primeira versão do kernel Linux: 1991
“I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones.”
Linus Torvalds – 26 de Agosto de 1991 – comp.os.minix
A Internet e o Linux
Total Sites across All Domains August 1995 – July 2009Source: http://news.netcraft.com/archives/web_server_survey.html
A Internet e o Linux
Totals for Active Servers across all DomainsSource: http://news.netcraft.com/archives/web_server_survey.html
A Internet e o LinuxWeb Server Julho de 2009 Percentual
Apache 39,371,318 51.12%
Microsoft 18,476,487 23.99%
Google 10,862,216 14.10%
nginx 3,496,153 4.54%
Sun 159,585 0.21%
qq.com 122,959 0.16%
Active Sites across all DomainsSource: http://news.netcraft.com/archives/2009/07/28/july_2009_web_server_survey.html
Técnicas de Aquisição
• Até pouco tempo as ferramentas de análise de desempenho da plataforma Intel foram usadas apenas para diagnóstico de falha
• Os contadores para CaP e diagnóstico de falha muitas vezes são idênticos
• A diferença está em como a informação é utilizada
Técnicas de Aquisição
• Run queue ou Load Average• Provavelmente a informação mais importante
que é ignorada com a maior frequência
“The load average tries to measure the number of active processes at any time. As a measure of CPU utilization, the load average is simplistic, poorly defined, but far from useless.”
Tim O'Reilly – Unix Power Tools
Técnicas de Aquisição
• Pacote sysstat (http://bit.ly/VegQO) inclui ferramentas para avaliação de:– Taxa de I/O global, por dispositivo, por partição e por
task– Estatísticas de uso de CPU global, por CPU ou por
task– Uso de memória e swap– Memória Virtual, paging, faults– Estatísticas de disparo de processos– Interrupções– Rede– Run Queue and System Load
Técnicas de Aquisição
• Para a plataforma Microsoft, o Windows Performance Monitor oferece as ferramentas necessárias para a coleta de dados de praticamente todo o sistema (http://bit.ly/1241G9)
Consolidação e Visualização
Guerrilla maxim 2.2: Monitoring vs. Modeling
The difference between performance modeling and performance monitoring is like the difference between weather prediction and simply watching a weather-vane twist in the wind.
Consolidação e Visualização
• Objetivos da consolidação e visualização:– Análise de tendência– Constatação de sazonalidades– Análise do perfil de uso– Modelagem e validação do modelo
Consolidação e Visualização
• Armazenamento dos dados raw:– Permite análise detalhada a longo prazo– Maior precisão possível dentro do que foi
especificado na coleta– Pode exigir alto consumo de espaço– Pode haver necessidade de pré-
processamento devido ao grande volume de dados
Consolidação e Visualização
• Armazenamento dos dados consolidados:– Limita a quantidade de informação que pode
ser extraída– Pode haver perda de precisão– Permite planejamento do espaço ocupado– Minimiza a necessidade de pré-
processamento– Exemplo: Round-Robin Databases como as
usadas no MRTG (http://oss.oetiker.ch/mrtg/)
Consolidação e Visualização
• O pacote sysstat oferece ferramentas para armazenar e exportar os dados coletados – sar - http://bit.ly/sdBlo– sadf - http://bit.ly/30IjqT
• O Windows Performance Monitor também oferece a opção de armazenamento e exportação dos dados
Consolidação e Visualização
• Ferramentas frequentemente usadas para visualização:– Ganglia (http://ganglia.info/)– Cacti (http://www.cacti.net/)
Consolidação e Visualização
Consolidação e Visualização
Forecasting
• A previsão de desempenho e capacidade de um sistema pode ser feita (inclusive):– Trending: usamos uma massa de dados já
coletados e se extrapola• O sistema tem de existir• Alguém lembrou de coletar os dados...
– Modeling: Se cria um modelo do sistema para o qual se deseja fazer a análise
• Maior complexidade• Não exige sistemas em produção
Forecasting
• Trending: O Microsoft Excel ou o R (http://www.r-project.org/) permite que se criem trends a partir de séries com facilidade
• Modeling: O pacote Pretty Damn Quick (PDQ) resolve diversos modelos de fila (http://bit.ly/xOf4b).
Impacto dos métodos ágeis“O futuro não é mais como era antigamente”
Renato Russo
Impacto dos métodos ágeis
• Os ciclos de desenvolvimento de software tem sido cada vez mais curtos
• É necessário que os processos de análise e modelagem acompanhem a evolução nos processos de desenvolvimento de software
“Unnecessary detail means wasted time.Lacking the proper detail can be fatal”
John Allspaw – The art of capacity planning
Virtualização e Cloud Computing
• Virtualização se tornou onipresente em sistemas distribuídos nos últimos anos– Os desafios para o planejamento de
capacidade serão o de considerar cargas diferentes no mesmo host e otimizar o uso do host por essas cargas, além de escolher quais cargas heterogeneas farão melhor uso do equipamento
Virtualização e Cloud Computing
• Cloud Computing– Também conhecido como: terceirizar a sua infra-
estrutura para alguém quem tem máquinas a vontade para você usar quando precisar. (polêmica intencional)
– Variáveis novas para o planejamento de capacidade:• Latência• Capacidade real de processamento• Concorrência
– Mesmo que seja “barato” ninguém quer alugar 1000 máquinas na nuvem quando apenas 200 fariam o trabalho
Livros e Referências
• John Allspaw – The art of capacity planning– http://bit.ly/17cAg9
• Neil J. Gunther – Analyzing Computer System Performance with Perl::PDQ– http://bit.ly/KVC2o
• Michael J. Crawley - The R Book– http://bit.ly/KVC2o
• Daniel Menasce – Performance by Design– http://bit.ly/fc7vH
Perguntas ?
Obrigado