20
Planejamento de Capacidade em Ambiente Virtualizado Bruno Domingues [email protected] Sr. Solution Architect Intel Corporation

Planejamento de capacidade em ambiente virtualizado, por Bruno Domingues

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Planejamento de capacidade em ambiente virtualizado, por Bruno Domingues

Planejamento de Capacidade em Ambiente

Virtualizado

Bruno Domingues [email protected]

Sr. Solution Architect

Intel Corporation

Page 2: Planejamento de capacidade em ambiente virtualizado, por Bruno Domingues

Agenda

• Introdução

• Entendendo os usuários

• Entendendo as aplicações

• Entendendo a infraestrutura

• A “Tragédia” do planejamento de capacidade

Page 3: Planejamento de capacidade em ambiente virtualizado, por Bruno Domingues

Introdução

Escher– Unbelievable

Page 4: Planejamento de capacidade em ambiente virtualizado, por Bruno Domingues

Natureza do Ambiente Virtualizado

Software as a Service

Platform as a Service

Infrastructure as a Service

• Múltiplos usuários de

diferentes aplicações

• Múltiplas aplicações com

características distintas

• …Compartilhando a

mesma infraestrutura

Page 5: Planejamento de capacidade em ambiente virtualizado, por Bruno Domingues

A arte de acomodar “picos” e “vales”

Page 6: Planejamento de capacidade em ambiente virtualizado, por Bruno Domingues

Acomodar recursos computacionais de natureza distintas (método Ad Hoc)

CPU (MHz) Memoria

(MB) Rede (Mbps) Disco (IOPs)

Aplicação A 1500 4096 1000 400

Aplicação B 2000 4096 1500 520

Aplicação C 3000 8192 2000 880

… … … … …

Ʃ MHz Ʃ MB Ʃ Mbps Ʃ IOPs

xMhz yMB zMbps wIOPs

𝑀𝑎𝑥 𝛼, 𝛽, 𝛾, 𝛿 = número de servidores

Capacidade

instalada em

cada servidor

= 𝛼, 𝛽, 𝛾, 𝛿

Será que é simples assim?

Page 7: Planejamento de capacidade em ambiente virtualizado, por Bruno Domingues

Entendendo os Usuários

Michelangelo – A aliança entre Deus e os homens

Page 8: Planejamento de capacidade em ambiente virtualizado, por Bruno Domingues

Requisições de Acesso

Entender a distribuição de demanda

sobre o sistema na linha do tempo é

o primeiro passo.

Hits por hora Horário

500 6:00

1000 7:00

11000 8:00

20000 9:00

5000 10:00

1850 11:00

500 12:00

100 13:00

50 14:00

Total de usuários: 40000

x: 20000

média (µ): 4444.444

desvio padrão (α): 6829.689

Normal (y): 0.98863

hits/seg: 12.20526

0

5000

10000

15000

20000

25000

6:00 7:00 8:00 9:00 10:00 11:00 12:00 13:00 14:00

Hit

s p

or

ho

ra

Horário

Carga na aplicação

Equação da curva de Gauss (σ = desvio padrão, µ =

média aritmética)

Page 9: Planejamento de capacidade em ambiente virtualizado, por Bruno Domingues

Concorrência de Acesso

0.00000000

0.02000000

0.04000000

0.06000000

0.08000000

0.10000000

0.12000000

0 2 4 6 8 10 12 14 16 18 20 22 24 26P

rob

abili

ty

Assumindo que a pior situação haja

20mil usuários acessando o sistema

em um período de 1h, não significa

que haja 5,5 requisições/segundos

(ex. 20mil/3600 segundos)

A maior probabilidade é que se

tenha que lidar com 12 requisições

simultâneas e em intervalos de 0,5

segundos e a probabilidade de

atender mais de 20

requisições/segundo é menor de 2%

Distribuição de probabilidade de Poisson

Page 10: Planejamento de capacidade em ambiente virtualizado, por Bruno Domingues

Entendendo as Aplicações

Page 11: Planejamento de capacidade em ambiente virtualizado, por Bruno Domingues

Capacidades da Aplicação

Aplicação do LT (λ=taxa de requisição de Poisson, μ=capacidade de processamento de requisições, p=λ/μ

Page 12: Planejamento de capacidade em ambiente virtualizado, por Bruno Domingues

Entendendo a Infraestrutura

Tópicos:

• Processadores

• Memória

• Rede

• Armazenamento

Page 13: Planejamento de capacidade em ambiente virtualizado, por Bruno Domingues

Memória

12GB 24GB 36GB 48GB 72GB 96GB 144GB 192GB 256GB 512GB 1TB

Blade Half Height 2S $ 8,126.00 $ 8,566.00 $ 9,846.00 $ 17,766.00

Blade Full Height 2S $ 9,308.00 $ 9,888.00 $ 10,748.00 $ 11,028.00 $ 12,348.00 $ 18,948.00 $ 23,748.00 $ 64,948.00

Rack 2S $ 8,165.00 $ 8,605.00 $ 9,605.00 $ 9,885.00 $ 11,205.00 $ 17,805.00 $ 22,605.00

Rack 4S $ 22,763.00 $ 23,243.00 $ 23,563.00 $ 24,203.00 $ 25,163.00 $ 26,123.00 $ 28,523.00 $ 31,883.00 $ 36,363.00

Rack 8S $ 45,480.00 $ 45,960.00 $ 46,440.00 $ 46,920.00 $ 47,880.00 $ 48,840.00 $ 50,760.00 $ 52,680.00 $ 55,240.00

Rack 16S $ 180,480.00 $ 180,960.00 $ 181,440.00 $ 181,920.00 $ 182,880.00 $ 183,840.00 $ 185,760.00 $ 187,680.00 $ 190,240.00 $ 200,480.00

Rack 32S $ 300,480.00 $ 300,960.00 $ 301,440.00 $ 301,920.00 $ 302,880.00 $ 303,840.00 $ 305,760.00 $ 307,680.00 $ 310,240.00 $ 320,480.00 $ 340,000.00

Considerando um template básico de VM com 1 vCPU e 4GB de memória RAM

Page 14: Planejamento de capacidade em ambiente virtualizado, por Bruno Domingues

Rede unificada para ambiente virtualizado

DAS

NAS

iSCSI SAN FC SAN

Direct Attached Storage

Network Attached Storage iSCSI Storage Area Network

Fibre Channel Storage Area Network

Discos Locais

Baixa Utilização, não conectado a rede

Armazenamento baseado em arquivos

Crescimento de 52%/ano em capacidade

Ethernet block storage

Crescimento de 72%/ano em capacidade

FCoE

Legacy Block Storage

Declinio na participação de unidades/capacidade

Núvem Publica Núvem Privada Legado

Page 15: Planejamento de capacidade em ambiente virtualizado, por Bruno Domingues

Arquitetura padrão de indústria para scale-out storage (NFSv4.1)

2

Requisição de local 3

Endereço do local

4 Requisita dado

5 Resposta com o dado

Examplo de Leitura

6 Resposta do objeto

para a aplicação

1 Aplicação requisita

objeto

Servidores de Storage Servidores de

Metadados

Servidores de Aplicação

2

3

Cliente storage

1 6

5 4

app

metadata

services storage

services

15

Page 16: Planejamento de capacidade em ambiente virtualizado, por Bruno Domingues

A “Tragédia” do Planejamento de

Capacidade

Page 17: Planejamento de capacidade em ambiente virtualizado, por Bruno Domingues

Impacto da Virtualização em OLTP

VMM assistido por hardware

VMM usando paravirtualização

Page 18: Planejamento de capacidade em ambiente virtualizado, por Bruno Domingues

A raiz do problema

Event Waits Time(s) Avg wait (ms) % DB time Wait Class

DB CPU 6,179 59.89

log file sync 2,488,836 3,051 1 29.57 Commit

latch: cache buffers chains 50,724 210 4 2.04 Concurrency

latch: In memory undo latch 168,928 150 1 1.45 Concurrency

cursor: mutex S 178,372 148 1 1.44 Concurrency

Event Waits Time(s) Avg wait (ms) % DB time Wait Class

log file sync 1,510,872 9,488 6 64.75 Commit

DB CPU 4,345 29.66

latch: cache buffers chains 83,000 387 5 2.64 Concurrency

latch: enqueue hash chains 15,921 72 5 0.49 Other

latch: In memory undo latch 74,511 70 1 0.48 Concurrency

Desempenho Nativo

Desempenho Virtualizado

• Com o VMM C o impacto maior foi o limite de vCPUs

• Com o VMM D o problema foi com a tecnologia de disco virtual

• Em todos eles o mesmo problema se apresentou:

• Tempos altos de read latches

• Banda de I/O para o redo

Basicamente, um servidores de

4 CPUs virtualizado, apresentou

o mesmo desempenho de um

servidor de 2 CPUs não-

virtualizado

Page 19: Planejamento de capacidade em ambiente virtualizado, por Bruno Domingues

A Consequência do Problema

• A maioria dos servidores web são configurados para alocar 25 threads por CPU;

• Maior tempo no round-trip entre o servidor e de aplicação e o banco de dados,

mais tempo a thread fica alocada, logo menos thread disponível para novos

usuários = HTTP ERROR 500 (Server is too busy)

• Maior o número de locks no banco de dados (especialmente para os altamente

normalizados), logo potencial impacto no desempenho e funcionamento da

aplicação.

Page 20: Planejamento de capacidade em ambiente virtualizado, por Bruno Domingues

Seja Cético!

• Planejamento de Capacidade

somente no “papel” raramente funciona – teste em laboratório

• Confira sempre se os valores

esperados estão de fato sendo

realizados no laboratório: – Configuração de gerenciamento de

energia na BIOS pode derrubar o

desempenho de servidor de BD em 50%!

– Configurações de extensões de

virtualizações podem conter “truques”;

– Configuração de HBA (i.e. queuedetph e

queuelength) possuem um impacto

enorme no I/O

– Etc…

Carl Sagan