Post on 11-Nov-2014
description
Otimização holística de ambiente
computacional
Bruno DominguesPrincipal Architect @ Intel
IEEE Chairman of Computer Society para o Centro-Norte do Brasil
bruno.domingues@intel.com
Introdução
Escher– Unbelievable
A “equação” do planejamento de capacidade
Usuários
Aplicação
Planejamento de
Capacidade
Infraestrutura
A x I = n x R x U
A = Aplicação
I = Infraestrutura
n = expectativa de sucesso
R = variável aleatória
U = Usuários
Definição de Complexidade do Problema
Usuário Aplicação Infraestrutura
P“P”
NP
P=NP?
Goes to???
Ferramentas
• EMON
– Linha de comando, baixo nível para obter contadores do processador e chipset
• SAR
– Ferramenta padrão do Linux
• PowerTop
– Ferramenta padrão do Linux
• Linuxpm
– Ferramenta Intel para obter métricas de potência no nível do Sistema Operacional
Analise do padrão de carga
• Uma semana de monitoramento de CPU
• Utilização media entre 15-35%
• O maior é entre 6hs e 18hs, sendo consumido > 25%
• Toda a noite, por aproximadamente 6hs o consumo cai abaixo de 20%
• A utilização segue um padrão durante os dias de semana e finais de semana
Segue a distribuição
normal (pela Teoria dos
grandes números)
Entendendo o incompreensível usuário
Michelangelo – A aliança entre Deus e os homens
Distribuição de requisição de acessos
Hits por hora Horário
5000 6:00
7000 7:00
11000 8:00
20000 9:00
29000 10:00
38000 11:00
42000 12:00
41000 13:00
38000 14:00
32000 15:00
26000 16:00
20000 17:00
15000 18:00
9000 19:00
5000 20:00
2000 21:00
Total de hits: 340000
x: 170000
média (µ): 21250.000
desvio padrão (α): 14092.551
Normal (y): 1.00000
hits/seg: 59.02778 Equação da curva de Gauss (σ = desvio padrão, µ =
média aritmética)
0
5000
10000
15000
20000
25000
30000
35000
40000
45000
Hit
s p
or
ho
ra
Horário
Carga no web site
Concorrência de acesso
Assumindo que a pior situação haja
42.000 usuários acessando o
sistema em um intervalo de 1h, não
significa que você tenha que lidar
com 11.16 requisições/seg (i.e.
42000/3600)
0.00000000
0.01000000
0.02000000
0.03000000
0.04000000
0.05000000
0.06000000
10
15
20
25
30
35
40
45
50
55
60
65
70
75
80
85
90
95
100
105
PROBABILIDADE
Distribuição de Poisson
A maior probabilidade é que se tenha
que lidar com 60 requisições
simultâneas em intervalos de 0,5 seg.
(i.e. precisão do segundo)
Distribuição de probabilidade de Poisson
QUIZ
• Temos um pico de 35% de utilização de
CPU com ~60 hits simultâneos (42000
usuários no intervalo de 1h)
• Podemos inferir que podemos atender
80.000 sem nenhum problema?
Teoria das Filas
Aplicação do LT (λ=taxa de requisição de Poisson, μ=capacidade de
processamento de requisições, p=λ/μ
Utilização do QPI
Utilização em torno de 10-20%
Distribuição de Leitura/Escrita em memória
Segue a regra de Pareto (similar a maioria do serviços web):
20% escrita e 80% leitura
Leitura Escrita
Acesso a memória Local e Remota
Local Remoto
O que este padrão nos diz a respeito da aplicação que
está rodando em um servidor de dois sockets?
Revisão de NUMA em x86
CPU CPU
Alocação de blocos de
64 bytes em round-robin
NUMA é habilitado por padrão se estiver habilitado na BIOS
Porém pode ser desligado no kernel pela seguinte opção:
kernel /vmlinuz-2.6.18-128.el5 ro root=/dev/VolGroup00/LogVol00 numa=off
Sub-sistema de discos
Desempenho antes x depois da
controladora:
10.000 rpm – 100 / 130 IOPS
15.000 rpm – 160 / 180 IOPS
ConfiguraçõesPenalidade do RAID5
1 escrita (host-write) = 2 leituras + 2 escritas
RAID 5 – não é viável em ambientes de alto I/O
Reconstrução (depende do fabricante)RAID 10 – Ex: 72GB em aprox. 2 horas
RAID 5 – mesmo tempo ou pequena perda (< 20%)
Configuração de Disco
Supondo:
• 1TB de dados
• Discos de 100 GB
• 100 I/O por segundo
RAID # discos Max escritas/seg Max leituas/seg Disponibilidade
RAID-0 10 1000 1000 Baixa
RAID-0+1 20 1000 2000 Muito Alta
RAID-5 11 275 1100 Alta
Capacidade vs. Desempenho
4.800 IOPS, 800 GB de armazenamento
– Por capacidade
• RAID 5 = ~ 16 x 72GB
• RAID 10 = ~ 30 x 72GB
– Por desempenho (2:1 R/W)
• RAID 10
– 3200 reads + (1600 writes * 2) = ~ 6400 IOPS
– Discos de 10k rpm = 6400/130 = ~ 49 = ~ 48 discos
– Discos de 15k rpm = 6400/180 = ~ 35 = ~ 34 discos
• RAID 5
– 3200 reads + (1600 writes * 4) = ~ 9600 IOPS
– Discos de 10k rpm = 9600/130 = ~ 73 discos
– Discos de 15k rpm = 9600/180 = ~ 53 discos
Estudo de Caso – Efeito Cache em Storage
InteractionTotal Elapsed write time for
cycle (sec)
Average writes per
second
Average MB per
second1 469 341,151398 2,831823
2 460 347,82608 2,887228
3 466 343,347626 2,850054
4 467 342,612427 2,843951
5 467 342,612427 2,843951
6 462 346,320343 2,874279
7 462 346,320343 2,874279
8 456 350,877197 2,912555
9 458 349,344971 2,899836
10 457 350,109406 2,906182
Avg 462,4 346,0522218 2,8724138
Std. Dev 4,647580015 3,478041696 0,028863353
InteractionTotal Elapsed write time for
cycle (sec)
Average writes per
second
Average MB per
second1 150 1066,666626 8,854166
2 151 1059,602661 7,9553
3 159 1006,289307 8,352987
4 157 1019,108276 8,459395
5 152 1052,631592 8,737665
6 148 1081,081055 8,973817
7 144 1111,111084 9,22309
8 154 1038,96106 8,624188
9 148 1081,081055 8,973817
10 151 1059,602661 7,9553
Avg 151,4 1057,613538 8,6109725
Std. Dev 4,427188724 30,80922367 0,429820883
Teste de desempenho de storage usando o SQLIOSim.exe
30min depois…
Saturação do cache devido a utilização de RAID 5, derrubou o desempenho de I/O
Estudo de Caso – Fator HBA
Queuetarget e Queuedetph
Deve-se procurar valores ótimos para a sua apliação
QUIZ
• Se dobrarmos o número de núcleos de uma
máquina, dobramos a sua capacidade de
processamento?
• Porque?
Estudo de Caso – Web Site (paralelismo)
• Teste de desempenho em três configurações distintas de
servidores com aplicação configurada para medium pooled
usando o ACT para gerar a mesma carga, removendo o fator
latência – índices normalizados
Servidor (antigo)8 cores
Desempenho: 1
Servidor atual 16 cores
Desempenho: 3.15
Servidor 16 cores com virtualização4 VMs (4vCPU por VM)
Desempenho: 3.30
16 cores com servidor de aplicações
0.0
1.0
2.0
3.0
4.0
5.0
6.0
7.0
8.0
9.0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
De
sem
pe
nh
o R
ela
tiv
o
Escalabilidade SMP (Servidor Web)
Nesta situação fictícia, 16 núcleos físicos entregam
desempenho relativo de 7,4 cores, com eficiência de 0,46
16 cores virtualizados em 4 VMs
0.0
1.0
2.0
3.0
4.0
5.0
6.0
7.0
8.0
9.0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
De
sem
pe
nh
o R
ela
tiv
o
Escalabilidade SMP (Servidor Web)
4 núcleos físicos,
representam
desempenho relativo
de 3,2 núcleos e 0,8
de eficiência
Desempenho Relativo
7,4 < 4 x (3,2 x Δ)
4 máquinas virtuais rodando app
server e Δ é o overhead [0 ≤ Δ ≤ 1]1 máquina física com 16
núcleos rodando app server
Eficiência Computacional
0
50
100
150
200
250
300
350
400
450
500
Pbase Pmax
Co
nsu
mo
de
Po
tên
cia
(W)
Potência Proporcional a Computação
5300
5400
5500
5600
E5-2600
Pspread
Patual = P𝑏𝑎𝑠𝑒 + P𝑠𝑝𝑟𝑒𝑎𝑑
Simplificação da relação potência vs. trabalho computacional
Obrigado!