27
Otimização holística de ambiente computacional Bruno Domingues Principal Architect @ Intel IEEE Chairman of Computer Society para o Centro-Norte do Brasil [email protected]

Otimização holistica de ambiente computacional

Embed Size (px)

DESCRIPTION

CMG Brasil 2013

Citation preview

Page 1: Otimização holistica de ambiente computacional

Otimização holística de ambiente

computacional

Bruno DominguesPrincipal Architect @ Intel

IEEE Chairman of Computer Society para o Centro-Norte do Brasil

[email protected]

Page 2: Otimização holistica de ambiente computacional

Introdução

Escher– Unbelievable

Page 3: Otimização holistica de ambiente computacional

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

Page 4: Otimização holistica de ambiente computacional

Definição de Complexidade do Problema

Usuário Aplicação Infraestrutura

P“P”

NP

P=NP?

Page 5: Otimização holistica de ambiente computacional

Goes to???

Page 6: Otimização holistica de ambiente computacional

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

Page 7: Otimização holistica de ambiente computacional

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)

Page 8: Otimização holistica de ambiente computacional

Entendendo o incompreensível usuário

Michelangelo – A aliança entre Deus e os homens

Page 9: Otimização holistica de ambiente computacional

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

Page 10: Otimização holistica de ambiente computacional

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

Page 11: Otimização holistica de ambiente computacional

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?

Page 12: Otimização holistica de ambiente computacional

Teoria das Filas

Aplicação do LT (λ=taxa de requisição de Poisson, μ=capacidade de

processamento de requisições, p=λ/μ

Page 13: Otimização holistica de ambiente computacional

Utilização do QPI

Utilização em torno de 10-20%

Page 14: Otimização holistica de ambiente computacional

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

Page 15: Otimização holistica de ambiente computacional

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?

Page 16: Otimização holistica de ambiente computacional

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

Page 17: Otimização holistica de ambiente computacional

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%)

Page 18: Otimização holistica de ambiente computacional

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

Page 19: Otimização holistica de ambiente computacional

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

Page 20: Otimização holistica de ambiente computacional

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

Page 21: Otimização holistica de ambiente computacional

Estudo de Caso – Fator HBA

Queuetarget e Queuedetph

Deve-se procurar valores ótimos para a sua apliação

Page 22: Otimização holistica de ambiente computacional

QUIZ

• Se dobrarmos o número de núcleos de uma

máquina, dobramos a sua capacidade de

processamento?

• Porque?

Page 23: Otimização holistica de ambiente computacional

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

Page 24: Otimização holistica de ambiente computacional

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

Page 25: Otimização holistica de ambiente computacional

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

Page 26: Otimização holistica de ambiente computacional

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

Page 27: Otimização holistica de ambiente computacional

Obrigado!