SlideShare una empresa de Scribd logo
1 de 32
Descargar para leer sin conexión
Desempenho e escalabilidade de
Banco de Dados em ambiente x86
Bruno Domingues
Principal Architect
bruno.domingues@intel.com
Básico: Configuração de BIOS
• Sempre verifique as
configurações apropriadas
de BIOS para:
• Procure por:
– Funcionalidades de CPU
– Memória
– Gerenciamento de Energia
• Exemplo:
– Configurações padrão não
são ótimas para os principais
SGDBs do mercado
• Se não está seguro quanto
a melhor configuração,
teste!
Configuração e Desempenho do Servidor
1. CPU2. Memória
3. I/O e Disco
Lei de Moore
Lei de Moore:
Inovação em Tecnologia permite
dobrar o número de transistores no
microchip a cada dois anos
“A adoção da liga high-k marca
a maior transformação na
tecnologia do transistor desde o
final da década de 60”
– Gordon Moore
Capacidades do silicio:
• Mais transistores para novas
funções de capacidades
• Maior desempenho
• Menor consumo de potência
(chaveamento e fuga)
• Menor footprint
Porque o processo importa, uma perspectiva
histórica
em 2004 ………….
Hyper-Threading
Time(proc.cycles)
sem SMT SMT
Note: Cada
Caixa representa
uma unidade de
execução do
processador
• Múltiplos núcleos
- Núcleos completamente duplicados
- Aparecem como dois (ou mais) processadores físicos
para o sistema operacional
- Executa threads independentes com seus próprios
recursos computacionais
- Prove um meio de aumentar o desempenho e minimiza
o consumo de potência e dissipação térmica
• SMT Multithread simultânea
- Executa duas threads ao mesmo tempo por núcleo
• Tira vantagem da máquina de execução de 4 vias
- Mantêm o processador alimentado com múltiplas
threads
- Oculta latências de uma única thread
• Funcionalidade que provê excelente eficiência de potência
- Ocupa uma pequena área do processador
- Pode prover ganho significativo de desempenho
*dependendo da aplicação*
SMT em Mapeamentos de CPU no Linux
Topologia do processador
• Em /proc/cpuinfo
• Você poderá ver 16 CPUs: 0-15
• Processor Topology Tool
identifica qual thread está em
qual CPU do Linux (e muito
mais)
Socket 0
OScpu# | 0 8 | 1 9| 2 10| 3 11|
Core |c0_t0 c0_t1|c1_t0 c1_t1|c2_t0 c2_t1|c3_t0 c3_t1|
Socket 1
OScpu# | 4 12| 5 13| 6 14| 7 15|
Core |c0_t0 c0_t1|c1_t0 c1_t1|c2_t0 c2_t1|c3_t0 c3_t1|
Ex. Socket 0, Core 0, Thread 1 é
Linux CPU 8
Comparativo de Desempenho do SMT
1 2 4 8 12 16 20 24 28 32 36 40 44 48
OracleTransactions
Threads
Typical Oracle OLTP Performance Profile
Arquitetura Nehalem com o SMT
habilitado
Arquitetura Nehalem com o SMT
desabilitado
Geração anterior como baseline
Escalando Frequência com CPUSPEED
[root@london1 ~]# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 26
model name : Intel(R) Xeon(R) CPU X5570 @ 2.93GHz
stepping : 5
cpu MHz : 2933.570
cache size : 8192 KB
…
[root@london1 ~]# service cpuspeed stop
Disabling ondemand cpu frequency scaling:[ OK ]
[root@london1 ~]# cat /proc/cpuinfo | grep -i MHz
cpu MHz : 2927.000
cpu MHz : 2927.000
[root@london1 ~]# service cpuspeed start
Enabling ondemand cpu frequency scaling:[ OK ]
[root@london1 ~]# cat /proc/cpuinfo | grep -i MHz
cpu MHz : 1596.000
cpu MHz : 1596.000
[root@london1 ~]# cat /proc/cpuinfo | grep -i MHz
cpu MHz : 1596.000
cpu MHz : 2927.000
Frequências independentes em
resposta a demanda
Valores dinâmicos em
/proc/cpuinfo
Prioridades de scheduling
Exemplo de carga com Oracle
Top 5 Timed Events Avg %Total
~~~~~~~~~~~~~~~~~~ wait Call
Event Waits Time (s) (ms) Time Wait Class
------------------------------ ------------ ----------- ------ ------ ----------
latch: cache buffers chains 114,324 218,927 2154 72.1 Concurrenc
CPU time 25,442 9.1
latch free 1,998 1,342 577 0.2 Other
-------------------------------------------------------------
SQL> select * from (select name, addr, spin_gets, gets, misses, sleeps from v$latch_Children
where name = 'cache buffers chains' order by gets desc) where rownum < 5;
NAME
----------------------------------------------------------------
ADDR SPIN_GETS GETS MISSES SLEEPS
---------------- ---------- ---------- ---------- ----------
cache buffers chains
00000003E1A0A3F8 838682200 1136069722 839855996 4227
cache buffers chains
00000003E164AA10 0 29037 0 0
cache buffers chains
00000003E1A43220 0 14800 0 0
CPU do SO está em 100% porém no
Oracle apresenta apenas 9%
Memória e o Oracle
Connected to:
Oracle Database 10g Express Edition Release
SQL> show sga;
Total System Global Area 805306368 bytes
Fixed Size 1289996 bytes
Variable Size 197132532 bytes
Database Buffers 603979776 bytes
Redo Buffers 2904064 bytes
SQL>
Memória Física e Virtual
• Cada processo vê a memoria virtual continua
• MMU (Memory Management Unit) na CPU traduz o virtual para a memória
física
• A TLB (Translation Lookaside Buffer) armazena as traduções mais recentes
[root@london1 ~]# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 26
model name : Intel(R) Xeon(R) CPU X5570 @ 2.93GHz
…
address sizes : 40 bits physical, 48 bits virtual
• 40/44 bit fisico 1TB/16TB de memória
• MAXPHYADDR para x86-64 é de 52 bits = 4 Petabytes
48-bit de Endereçamento Virtual
• Cada entrada de endereço são de 8 bytes (64 bits)
• 48 bits = PML4 + PDP + PDE + PTE + page offset
• Atualmente reservados os 16 bits mais altos de endereçamento
• bits 48 ao 63 são atualmente o mesmo que o bit 47
• Tamanho de página definido pelo offset
• Ex. no Linux #define PAGE_SHIFT 12
• 2 para a potência de 12 = 4KB Page
• Ex. endereço linear em x86_64
bit 47 bit 0
47 39 38 30 29 12 20 12 11 0
PML4 Directory Ptr Directory Table Offset
• Cada processo necessita 8 bytes por página de 4KB
• Até 256TB de espaço de endereço linear
Huge Pages
• Huge Pages altera o endereçamento de offset (normalmente 2 para o 21° em
x86_64 = 2MB)
• Parametro do kernel vm.nr hugepages
47 39 38 30 29 21 20 0
PML4 Directory Ptr Directory Offset
...
HugePages Total: 0
HugePages_Free: 0
Hugepagesize: 2048kB
HugePages_Total: 7500
HugePages_Free: 299
HugePages_Rsvd: 0
Hugepagesize: 2048 kB
Memória Física: Arquitetura
QuickPath Interconnect
Non-Uniform Memory Access (NUMA)
Nehalem
EP
Nehalem
EP
Tylersburg
EP
• Arquitetura FSB
- Toda a memória em um local
• Iniciando com o Nehalem (x86)
- Memória localizada em multiplos
locais
• Latência para memória depende do
local
• Memória Local
- Maior banda
- Menor Latência
• Memória Remota
- Maior Latência
Verifique se o software é otimizado para NUMA
NUMA e Oracle
Subject: Oracle NUMA usage recommendation
Doc ID: 759565.1 Type: ALERT Modified Date : 19-JUN-2009 Status: PUBLISHED
Disabling or enabling NUMA can change application performance.
It is strongly recommended to evaluate the performance after disabling or before enabling NUMA in
a test environment.
Operating system and/or hardware configuration may need to be tuned or reconfigured when
disabling Oracle NUMA support.
Consult your hardware vendor for more information or recommendation
select a .ksppinm "Parameter", b.ksppstvl "Session Value", c.ksppstvl "Instance
Value" from x$ksppi a, x$ksppcv b, x$ksppsv c where a.indx = b.indx AND
a.indx = c.indx AND ksppinm like '%NUMA%';
…
_enable_NUMA_support
TRUE
In Alert.log
NUMA system found and support enabled (4 domains - 16,16,16,16)
NUMA Desabilitada
[oracle@london1 ~]$ ipcs -m
------ Shared Memory Segments --------
key shmid owner perms bytes nattch
0x6422c258 32768 oracle 660 4096 0
0x10455eac 98305 oracle 600 15034482688 31
Processor Processor
Alocação de 64 bytes
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
dmesg | grep -i numa
Command line: ro root=/dev/VolGroup00/LogVol00 numa=off
NUMA turned off
NUMA OFF : Apenas um nó de memória configurado
[root@nehalem1 ~]# numactl --hardware
available: 1 nodes (0-0)
node 0 size: 18149 MB
node 0 free: 2685 MB
node distances:
node 0
0: 10
Linux enxerga memória como nó 0
apenas PORÉM intercalado pelo
Sistema com alocações de 64 bytes
Memória eventualmente alocada por
padrão.
Ou use Huge Pages
NUMA Habilitada
[oracle@london1 ~]$ ipcs -m
------ Shared Memory Segments ---
key shmid owner perms bytes
0xa3c20e68 32768 oracle 660 4096 0
0x00000000 884737 oracle 660 1140850688 28
0x00000000 917506 oracle 660 5905580032 28
0x00000000 950275 oracle 660 5905580032 28
0xfb0938e4 983044 oracle 660 2097152 28
When NUMA is enabled
[oracle@london1 ~]$ dmesg | grep -i numa
NUMA: Using 31 for the hash shift
NUMA ON: dois nós de memória configurados
[oracle@nehalem1 ~]$ numactl --hardware
available: 2 nodes (0-1)
node 0 size: 9059 MB
node 0 free: 778 MB
node 1 size: 9090 MB
node 1 free: 1306 MB
node distances:
node 0 1
0: 10 21
1: 21 10
Processor Processor
Linux enxerga como nó 0 e nó 1
Distâncias transmitem latência
Linux e o SGDB devem gerenciar a
memória
Processor Processor
Alocações de 2MB
Monitoramento e Estatísticas NUMA
/sys/devices/system/node
[root@london1 node0]$ more meminfo
Node 0 MemTotal: 9276828 kB
Node 0 MemFree: 1465256 kB
Node 0 MemUsed: 7811572 kB
Node 0 Active: 211400 kB
Node 0 Inactive: 77752 kB
Node 0 HighTotal: 0 kB
Node 0 HighFree: 0 kB
Node 0 LowTotal: 9276828 kB
Node 0 LowFree: 1465256 kB
Node 0 Dirty: 28 kB
Node 0 Writeback: 0 kB
Node 0 FilePages: 170280 kB
Node 0 Mapped: 38620 kB
Node 0 AnonPages: 199608 kB
Node 0 PageTables: 13304 kB
Node 0 NFS_Unstable: 0 kB
Node 0 Bounce: 0 kB
Node 0 Slab: 15732 kB
Node 0 HugePages_Total: 3588
Node 0 HugePages_Free: 847
[oracle@london1 ~]$ numastat
node0 node1
numa_hit 394822 873142
numa_miss 0 0
numa_foreign 0 0
interleave_hit 11826 11605
local_node 386530 854775
other_node 8292 18367
[root@london1 ~]# numactl --show
policy: default
preferred node: current
physcpubind: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
cpubind: 0 1
nodebind: 0 1
membind: 0 1
Considerações sobre banda de memória
• Maximum B/W:
– DDR3 1333 across 3 channels
– Up to 1 DPC (6 DIMMs total)
– Max capacity: 48 GB
• General purpose:
– DDR3 1066 across 3 channels
– Up to 2 DPC (12 DIMMs total)
– Max capacity: 96GB
• Maximum capacity:
– DDR3 800 across 3 channels
– Up to 3 DPC (18 DIMMs total)
– Max capacity: 144GB
(DPC – Dimms por canal)
CPU CPU
CPU CPU
CPU CPU
10.6 GB/s
10.6
10.6
8.5 GB/s
8.5
8.5
6.4 GB/s
6.4
6.4
Capacidade de
Banda por
processador
25.5GB/s
96GB
19.2GB/s
144GB
32GB/s
48GB
6102
9776
27208
33203
36588
HTN 3.16/
BF1333/ 667
MHz mem
HTN 3.00/
SB1600/ 800
MHz mem
NHM 2.93/ 800
MHz mem/3
DPC
NHM 2.93/
1066 MHz
mem/2 DPC
NHM 2.93/
1333 MHz
mem/1 DPC
Maior é melhor
Banda de streaming – Mbytes/Sec
+274%
Capacidade e Banda na plataforma
Memória
1333 MHz
Memória
1066 MHz
Memória
800 MHz
Source: Intel internal measurement – March 2009
Exemplo 1 de DMIDECODE
#dmidecode
Motherboard
Handle 0x0003, DMI type 2, 16 bytes
Base Board Information
Manufacturer: Intel
Product Name: S5000PAL0
Processor
Processor Information
Version: Intel(R) Xeon(R) CPU X5355
Memory
Handle 0x0034, DMI type 17, 27 bytes
Memory Device
Data Width: 64 bits
Size: 2048 MB
Form Factor: DIMM
Set: 1
Locator: ONBOARD DIMM_A1
Bank Locator: Not Specified
Type: DDR2
Type Detail: Synchronous
Speed: 667 MHz (1.5 ns)
• O que isso nos diz:
Motherboard
4 canais de memória (S5000PAL0) 8 Slots
(A1/A2/B1/B2/D1/D2) canais
CPU
Intel Clovertown CPUs
1333Mhz (Dual independente FSB)
Bandwidth 10666 MB/s por FSB
21 GB/s Máxima banda do FSB
Memória
Memória DDR2 667 = PC2-5300
4 canais de memória a 5.3GB/s cada
Banda de memória a 21 GB/s de todos os 4
canais
16GB memória total
Exemplo 2 de DMIDECODE
#dmidecode
Motherboard
Handle 0x0002, DMI type 2, 15 bytes.
Base Board Information
Manufacturer: Supermicro
Product Name: X8DTN
Processor
Processor Information
Version: Intel(R) Xeon(R) CPU X5570
Memory
Array Handle: 0x0029
Data Width: 64 bits
Size: 1024 MB
Form Factor: DIMM
Set: 1
Locator: A1_DIMM0
Bank Locator: A1_Node0_Channel0_Dimm0
Type: <OUT OF SPEC>
Type Detail: Synchronous
Speed: 800 MHz (1.2 ns)
• O que isso nos diz:
Motherboard
6 canais de memória (X8DTN), 18 slots
Node0/Node1,Channel0/1/2, DIMM0/1/2
CPU
Intel Nehalem CPUs
3.2GHz QPI (Quickpath Interconnect)
Banda de 25.6 GB/s socket to socket
Até 32GB/s de banda de memória por CPU
Memória
Memória DDR3 800 = PC4-6400
6 canais de memória a 6.4GB/s cada
Banda de memória a 38.4GB/s de todos os 6 canais
19.2GB/s por processador
18GB memória total
Disco e I/O
1 2 4 8 12 16 20 24
OracleTransactions
Threads
Oracle OLTP
I/O Impact on Performance
Subsistema de armazenamento “A”
Subsistema de armazenamento “B”
• Servidores idênticos com CPU e memória
• SO e SGDB idênticos
• Aplicações idênticas e cargas
• Diferentes sistemas de armazenamento
Amdahl’s Rule of Thumb
1 byte of memory and 1 byte per second of I/O are
required for each instruction per second supported by
a computer
Dependência de OLTP Redo I/O
Event Waits Time(s) Avg wait (ms) % DB time Wait Class
log file sync 894,491 5,490 6 61.33 Commit
DB CPU 2,116 23.64
db file
sequential
read
82,013 728 9 8.14 User I/O
enq: TX - row
lock
contention
17,977 116 6 1.29 Application
latch: In
memory undo
latch
44,552 79 2 0.88 Concurrency
Per Second
Transactions: 4,023.7
Subject: WAITEVENT: "log file sync" Reference Note
Doc ID: 34592.1 Type: REFERENCE
Modified Date : 14-JUL-2009 Status: PUBLISHED
Tune LGWR to get good throughput to disk . eg: Do not put redo logs on RAID 5
Dependência de OLTP Redo CPU
Event Waits Time(s) Avg wait (ms) % DB time Wait Class
log file sync 1,795,089 5,909 3 50.38 Commit
DB CPU 2,789 23.78
db file
sequential
read
162,468 2,703 17 23.05 User I/O
enq: TX - row
lock
contention
23,311 205 9 1.74 Application
log file switch
completion
1,429 52 37 0.44 Configuration
Per Second
Transactions: 8,264.3
• Subsistemas de discos idênticos
• Memórias identicas
• OS e SGDB identicos
• Upgrade CPU (LGWR também precisa de CPU)
Atualização de memória de uma geração para outra pode trazer até 2x mais desempenho para o redo
Desempenho de Disco rígido e CPU
175x CPU vs. 1.3x ganhos com discos rígidos
NormalizedPerformance
Desempenho de CPU normalizado pelo tempo
médio de acesso para leituras de 20k
200
180
160
140
120
100
80
0
Jan
'96
Jan
'97
Jan
'98
Jan
'99
Jan
'00
Jan
'01
Jan
'02
Jan
'03
Jan
'04
Jan
'05
Jan
'06
Jan
'08
Source: Intel measurementsDate
Desempenho aferido de
ganho de CPU= 175x
Desempenho aferido do
disco rigido = 1.3X
desde 1996
60
40
20
Jan
'07
Jan
'09
Potencial do
SSD
Multicore CPU
CPU
disco
Comparativo de Disco Rigido e SSD
1 rack de 120 HDDs
36,000 IOPS
12 GB/sec com banda sustentável
1452 Watts
8.8 TB
1 rack de 120 SSDs
4,200,000 IOPS
36 GB/sec com banda sustentável
288 Watts
3.8 TB
Por HDD:
– R/W 150 MB/sec
– 320 IOPS (Read)
– 120 IOPS (Write)
– 12.1 W (active)
Por SSD:
– Read 250 MB/sec
– Write 170 MB/sec
– 35,000 IOPS (Read)
– 4000 IOPS (Write)
– 2.4 W (active)
SAN vs. SSD para desempenho de OLTP
8 discos SSD
15 discos SAN
Desempenho Virtual vs. Nativo
Native Performance Drives Virtualized Performance
Desempenho do virtualizado é proporcional ao desempenho nativo
Nativo
Desempenho nativo leva a desempenho do virtualizado
Virtual
Overhead Nativo
Virtual
Overhead
Overhead da
virtualização
Overhead aprox. 16%
Obrigado!

Más contenido relacionado

La actualidad más candente

Miicro basico(Computador basico)
Miicro basico(Computador basico)Miicro basico(Computador basico)
Miicro basico(Computador basico)Rayner Barbosa
 
PostgreSQL: Performance Tuning
PostgreSQL: Performance TuningPostgreSQL: Performance Tuning
PostgreSQL: Performance TuningFernando Ike
 
Mysql cluster quick start webinar
Mysql cluster quick start webinarMysql cluster quick start webinar
Mysql cluster quick start webinarhenriquesidney
 
Ubuntu Enterprise Cloud
Ubuntu Enterprise CloudUbuntu Enterprise Cloud
Ubuntu Enterprise CloudJulio Monteiro
 
Computador Básico - Peças
Computador Básico - PeçasComputador Básico - Peças
Computador Básico - PeçasRayner Barbosa
 
MEO Cloud - Python Lisbon Meetup
MEO Cloud - Python Lisbon MeetupMEO Cloud - Python Lisbon Meetup
MEO Cloud - Python Lisbon MeetupAndré Cruz
 
Resumo comandos is3050
Resumo comandos is3050Resumo comandos is3050
Resumo comandos is3050zeu1507
 
Sistema de Banco de Dados Distribuídos
Sistema de Banco de Dados DistribuídosSistema de Banco de Dados Distribuídos
Sistema de Banco de Dados DistribuídosDeroci Nonato Júnior
 
Opennebula instalação
Opennebula instalaçãoOpennebula instalação
Opennebula instalaçãoLuís Eduardo
 
Resumo comandos is3050
Resumo comandos is3050Resumo comandos is3050
Resumo comandos is3050zeu1507
 
Apresentação PGDAY - instalação e configuração - PostgreSQL
Apresentação PGDAY - instalação e configuração - PostgreSQLApresentação PGDAY - instalação e configuração - PostgreSQL
Apresentação PGDAY - instalação e configuração - PostgreSQLJohnes Castro
 
Manual Kikrotik Completo
Manual Kikrotik CompletoManual Kikrotik Completo
Manual Kikrotik CompletoPortal GSTI
 
UNIFAL - MySQL 5.6 - Replicação
UNIFAL - MySQL 5.6 - ReplicaçãoUNIFAL - MySQL 5.6 - Replicação
UNIFAL - MySQL 5.6 - ReplicaçãoWagner Bianchi
 
Instalando o MySQL em menos de 10 minutos
Instalando o MySQL em menos de 10 minutosInstalando o MySQL em menos de 10 minutos
Instalando o MySQL em menos de 10 minutosAlexandre Almeida
 
MySQL 5.7 Multi-Source Replication
MySQL 5.7 Multi-Source ReplicationMySQL 5.7 Multi-Source Replication
MySQL 5.7 Multi-Source ReplicationWagner Bianchi
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoFabio Telles Rodriguez
 

La actualidad más candente (20)

Aula 17 hd
Aula 17 hdAula 17 hd
Aula 17 hd
 
Miicro basico(Computador basico)
Miicro basico(Computador basico)Miicro basico(Computador basico)
Miicro basico(Computador basico)
 
PostgreSQL: Performance Tuning
PostgreSQL: Performance TuningPostgreSQL: Performance Tuning
PostgreSQL: Performance Tuning
 
Linux - Network
Linux - NetworkLinux - Network
Linux - Network
 
Mysql cluster quick start webinar
Mysql cluster quick start webinarMysql cluster quick start webinar
Mysql cluster quick start webinar
 
Ubuntu Enterprise Cloud
Ubuntu Enterprise CloudUbuntu Enterprise Cloud
Ubuntu Enterprise Cloud
 
Computador Básico - Peças
Computador Básico - PeçasComputador Básico - Peças
Computador Básico - Peças
 
MEO Cloud - Python Lisbon Meetup
MEO Cloud - Python Lisbon MeetupMEO Cloud - Python Lisbon Meetup
MEO Cloud - Python Lisbon Meetup
 
Resumo comandos is3050
Resumo comandos is3050Resumo comandos is3050
Resumo comandos is3050
 
Sistema de Banco de Dados Distribuídos
Sistema de Banco de Dados DistribuídosSistema de Banco de Dados Distribuídos
Sistema de Banco de Dados Distribuídos
 
Computador Superior
Computador SuperiorComputador Superior
Computador Superior
 
Opennebula instalação
Opennebula instalaçãoOpennebula instalação
Opennebula instalação
 
Resumo comandos is3050
Resumo comandos is3050Resumo comandos is3050
Resumo comandos is3050
 
Apresentação PGDAY - instalação e configuração - PostgreSQL
Apresentação PGDAY - instalação e configuração - PostgreSQLApresentação PGDAY - instalação e configuração - PostgreSQL
Apresentação PGDAY - instalação e configuração - PostgreSQL
 
Manual Kikrotik Completo
Manual Kikrotik CompletoManual Kikrotik Completo
Manual Kikrotik Completo
 
UNIFAL - MySQL 5.6 - Replicação
UNIFAL - MySQL 5.6 - ReplicaçãoUNIFAL - MySQL 5.6 - Replicação
UNIFAL - MySQL 5.6 - Replicação
 
Instalando o MySQL em menos de 10 minutos
Instalando o MySQL em menos de 10 minutosInstalando o MySQL em menos de 10 minutos
Instalando o MySQL em menos de 10 minutos
 
Hardware de sistemas
Hardware de sistemasHardware de sistemas
Hardware de sistemas
 
MySQL 5.7 Multi-Source Replication
MySQL 5.7 Multi-Source ReplicationMySQL 5.7 Multi-Source Replication
MySQL 5.7 Multi-Source Replication
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
 

Similar a Desempenho e escalabilidade de Banco de Dados em ambiente x86

Manutenção
ManutençãoManutenção
ManutençãoTiago
 
Curso informtica manuten o - inicial
Curso informtica   manuten o - inicialCurso informtica   manuten o - inicial
Curso informtica manuten o - inicialTiago
 
Amazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenhoAmazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenhoAmazon Web Services LATAM
 
Apostila de montagem e manutenção de computadores emi mario gurgel
Apostila de montagem e manutenção de computadores emi mario gurgelApostila de montagem e manutenção de computadores emi mario gurgel
Apostila de montagem e manutenção de computadores emi mario gurgelPablo Mariano
 
Hardware
HardwareHardware
HardwareTiago
 
Descrição dos componentes
Descrição dos componentesDescrição dos componentes
Descrição dos componentesTiago
 
Cloud Server Embratel
Cloud Server EmbratelCloud Server Embratel
Cloud Server EmbratelAlex Hübner
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcadotdc-globalcode
 
Projeto de Elasticidade e Evolução do Projeto FIBRE
Projeto de Elasticidade e Evolução do Projeto FIBREProjeto de Elasticidade e Evolução do Projeto FIBRE
Projeto de Elasticidade e Evolução do Projeto FIBREFIBRE Testbed
 
Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8elliando dias
 
Arquitectura de Computadores3.pptx
Arquitectura de Computadores3.pptxArquitectura de Computadores3.pptx
Arquitectura de Computadores3.pptxriodurval
 
Como montar um pc
Como montar um pcComo montar um pc
Como montar um pcTiago
 
11 montagem
11 montagem11 montagem
11 montagemTiago
 
Sugestoes de ofertas em oracle cloud 09 07-2020
Sugestoes de ofertas em oracle cloud 09 07-2020Sugestoes de ofertas em oracle cloud 09 07-2020
Sugestoes de ofertas em oracle cloud 09 07-2020Oracle
 
Z13 x zEC12: O que esperar? - por Luiz Carlos Orsoni
Z13 x zEC12: O que esperar? - por Luiz Carlos OrsoniZ13 x zEC12: O que esperar? - por Luiz Carlos Orsoni
Z13 x zEC12: O que esperar? - por Luiz Carlos OrsoniJoao Galdino Mello de Souza
 
Valdir Adorni - Infra and S.A.N Assessment Integration Sample
Valdir Adorni - Infra and S.A.N Assessment Integration SampleValdir Adorni - Infra and S.A.N Assessment Integration Sample
Valdir Adorni - Infra and S.A.N Assessment Integration SampleValdir Adorni
 

Similar a Desempenho e escalabilidade de Banco de Dados em ambiente x86 (20)

Manutenção
ManutençãoManutenção
Manutenção
 
Mini-curso CUDA
Mini-curso CUDAMini-curso CUDA
Mini-curso CUDA
 
Curso informtica manuten o - inicial
Curso informtica   manuten o - inicialCurso informtica   manuten o - inicial
Curso informtica manuten o - inicial
 
Amazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenhoAmazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenho
 
Apostila de montagem e manutenção de computadores emi mario gurgel
Apostila de montagem e manutenção de computadores emi mario gurgelApostila de montagem e manutenção de computadores emi mario gurgel
Apostila de montagem e manutenção de computadores emi mario gurgel
 
Hardware
HardwareHardware
Hardware
 
Descrição dos componentes
Descrição dos componentesDescrição dos componentes
Descrição dos componentes
 
Exercicios 06
Exercicios 06Exercicios 06
Exercicios 06
 
Cloud Server Embratel
Cloud Server EmbratelCloud Server Embratel
Cloud Server Embratel
 
Lista2009 2
Lista2009 2Lista2009 2
Lista2009 2
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcado
 
Projeto de Elasticidade e Evolução do Projeto FIBRE
Projeto de Elasticidade e Evolução do Projeto FIBREProjeto de Elasticidade e Evolução do Projeto FIBRE
Projeto de Elasticidade e Evolução do Projeto FIBRE
 
Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8Desenvolvimento com o ATmega8
Desenvolvimento com o ATmega8
 
Arquitectura de Computadores3.pptx
Arquitectura de Computadores3.pptxArquitectura de Computadores3.pptx
Arquitectura de Computadores3.pptx
 
Como montar um pc
Como montar um pcComo montar um pc
Como montar um pc
 
11 montagem
11 montagem11 montagem
11 montagem
 
Sugestoes de ofertas em oracle cloud 09 07-2020
Sugestoes de ofertas em oracle cloud 09 07-2020Sugestoes de ofertas em oracle cloud 09 07-2020
Sugestoes de ofertas em oracle cloud 09 07-2020
 
MIPS Pipeline
MIPS Pipeline MIPS Pipeline
MIPS Pipeline
 
Z13 x zEC12: O que esperar? - por Luiz Carlos Orsoni
Z13 x zEC12: O que esperar? - por Luiz Carlos OrsoniZ13 x zEC12: O que esperar? - por Luiz Carlos Orsoni
Z13 x zEC12: O que esperar? - por Luiz Carlos Orsoni
 
Valdir Adorni - Infra and S.A.N Assessment Integration Sample
Valdir Adorni - Infra and S.A.N Assessment Integration SampleValdir Adorni - Infra and S.A.N Assessment Integration Sample
Valdir Adorni - Infra and S.A.N Assessment Integration Sample
 

Más de Rodrigo Campos

Velocity Conference NYC 2014 - Real World DevOps
Velocity Conference NYC 2014 - Real World DevOpsVelocity Conference NYC 2014 - Real World DevOps
Velocity Conference NYC 2014 - Real World DevOpsRodrigo Campos
 
DevOps no mundo real - QCON 2014
DevOps no mundo real - QCON 2014DevOps no mundo real - QCON 2014
DevOps no mundo real - QCON 2014Rodrigo Campos
 
7Masters Webops in the Cloud
7Masters Webops in the Cloud7Masters Webops in the Cloud
7Masters Webops in the CloudRodrigo Campos
 
Otimização holistica de ambiente computacional
Otimização holistica de ambiente computacionalOtimização holistica de ambiente computacional
Otimização holistica de ambiente computacionalRodrigo Campos
 
Mistério ou tecnologia? Paralelismo!
Mistério ou tecnologia? Paralelismo!Mistério ou tecnologia? Paralelismo!
Mistério ou tecnologia? Paralelismo!Rodrigo Campos
 
z/VM Performance Analysis
z/VM Performance Analysisz/VM Performance Analysis
z/VM Performance AnalysisRodrigo Campos
 
Sistemas de proteção de perímetro
Sistemas de proteção de perímetroSistemas de proteção de perímetro
Sistemas de proteção de perímetroRodrigo Campos
 
Devops at Walmart GeC Brazil
Devops at Walmart GeC BrazilDevops at Walmart GeC Brazil
Devops at Walmart GeC BrazilRodrigo Campos
 
Disk IO Benchmarking in shared multi-tenant environments
Disk IO Benchmarking in shared multi-tenant environmentsDisk IO Benchmarking in shared multi-tenant environments
Disk IO Benchmarking in shared multi-tenant environmentsRodrigo Campos
 
Cloud Computing Oportunidades e Desafios
Cloud Computing Oportunidades e DesafiosCloud Computing Oportunidades e Desafios
Cloud Computing Oportunidades e DesafiosRodrigo Campos
 
The good, the bad and the big... data
The good, the bad and the big... dataThe good, the bad and the big... data
The good, the bad and the big... dataRodrigo Campos
 
CMG 2012 - Tuning where it matters - Gerry Tuddenham
CMG 2012 - Tuning where it matters - Gerry TuddenhamCMG 2012 - Tuning where it matters - Gerry Tuddenham
CMG 2012 - Tuning where it matters - Gerry TuddenhamRodrigo Campos
 
A Consumerização da TI e o Efeito BYOT
A Consumerização da TI e o Efeito BYOTA Consumerização da TI e o Efeito BYOT
A Consumerização da TI e o Efeito BYOTRodrigo Campos
 
CMG Brasil 2012 - Uso de Lines nos z196
CMG Brasil 2012 - Uso de Lines nos z196CMG Brasil 2012 - Uso de Lines nos z196
CMG Brasil 2012 - Uso de Lines nos z196Rodrigo Campos
 
Racionalização e Otimização de Energia em Computação na Nuvem
Racionalização e Otimização de Energia em Computação na NuvemRacionalização e Otimização de Energia em Computação na Nuvem
Racionalização e Otimização de Energia em Computação na NuvemRodrigo Campos
 
SDN - Openflow + OpenVSwitch + Quantum
SDN - Openflow + OpenVSwitch + QuantumSDN - Openflow + OpenVSwitch + Quantum
SDN - Openflow + OpenVSwitch + QuantumRodrigo Campos
 
AWS RDS Benchmark - CMG Brasil 2012
AWS RDS Benchmark - CMG Brasil 2012AWS RDS Benchmark - CMG Brasil 2012
AWS RDS Benchmark - CMG Brasil 2012Rodrigo Campos
 

Más de Rodrigo Campos (20)

Velocity Conference NYC 2014 - Real World DevOps
Velocity Conference NYC 2014 - Real World DevOpsVelocity Conference NYC 2014 - Real World DevOps
Velocity Conference NYC 2014 - Real World DevOps
 
DevOps no mundo real - QCON 2014
DevOps no mundo real - QCON 2014DevOps no mundo real - QCON 2014
DevOps no mundo real - QCON 2014
 
7Masters Webops in the Cloud
7Masters Webops in the Cloud7Masters Webops in the Cloud
7Masters Webops in the Cloud
 
14 guendert pres
14 guendert pres14 guendert pres
14 guendert pres
 
Large and Giant Pages
Large and Giant PagesLarge and Giant Pages
Large and Giant Pages
 
Otimização holistica de ambiente computacional
Otimização holistica de ambiente computacionalOtimização holistica de ambiente computacional
Otimização holistica de ambiente computacional
 
13 coelho final-pres
13 coelho final-pres13 coelho final-pres
13 coelho final-pres
 
Mistério ou tecnologia? Paralelismo!
Mistério ou tecnologia? Paralelismo!Mistério ou tecnologia? Paralelismo!
Mistério ou tecnologia? Paralelismo!
 
z/VM Performance Analysis
z/VM Performance Analysisz/VM Performance Analysis
z/VM Performance Analysis
 
Sistemas de proteção de perímetro
Sistemas de proteção de perímetroSistemas de proteção de perímetro
Sistemas de proteção de perímetro
 
Devops at Walmart GeC Brazil
Devops at Walmart GeC BrazilDevops at Walmart GeC Brazil
Devops at Walmart GeC Brazil
 
Disk IO Benchmarking in shared multi-tenant environments
Disk IO Benchmarking in shared multi-tenant environmentsDisk IO Benchmarking in shared multi-tenant environments
Disk IO Benchmarking in shared multi-tenant environments
 
Cloud Computing Oportunidades e Desafios
Cloud Computing Oportunidades e DesafiosCloud Computing Oportunidades e Desafios
Cloud Computing Oportunidades e Desafios
 
The good, the bad and the big... data
The good, the bad and the big... dataThe good, the bad and the big... data
The good, the bad and the big... data
 
CMG 2012 - Tuning where it matters - Gerry Tuddenham
CMG 2012 - Tuning where it matters - Gerry TuddenhamCMG 2012 - Tuning where it matters - Gerry Tuddenham
CMG 2012 - Tuning where it matters - Gerry Tuddenham
 
A Consumerização da TI e o Efeito BYOT
A Consumerização da TI e o Efeito BYOTA Consumerização da TI e o Efeito BYOT
A Consumerização da TI e o Efeito BYOT
 
CMG Brasil 2012 - Uso de Lines nos z196
CMG Brasil 2012 - Uso de Lines nos z196CMG Brasil 2012 - Uso de Lines nos z196
CMG Brasil 2012 - Uso de Lines nos z196
 
Racionalização e Otimização de Energia em Computação na Nuvem
Racionalização e Otimização de Energia em Computação na NuvemRacionalização e Otimização de Energia em Computação na Nuvem
Racionalização e Otimização de Energia em Computação na Nuvem
 
SDN - Openflow + OpenVSwitch + Quantum
SDN - Openflow + OpenVSwitch + QuantumSDN - Openflow + OpenVSwitch + Quantum
SDN - Openflow + OpenVSwitch + Quantum
 
AWS RDS Benchmark - CMG Brasil 2012
AWS RDS Benchmark - CMG Brasil 2012AWS RDS Benchmark - CMG Brasil 2012
AWS RDS Benchmark - CMG Brasil 2012
 

Desempenho e escalabilidade de Banco de Dados em ambiente x86

  • 1. Desempenho e escalabilidade de Banco de Dados em ambiente x86 Bruno Domingues Principal Architect bruno.domingues@intel.com
  • 2. Básico: Configuração de BIOS • Sempre verifique as configurações apropriadas de BIOS para: • Procure por: – Funcionalidades de CPU – Memória – Gerenciamento de Energia • Exemplo: – Configurações padrão não são ótimas para os principais SGDBs do mercado • Se não está seguro quanto a melhor configuração, teste!
  • 3. Configuração e Desempenho do Servidor 1. CPU2. Memória 3. I/O e Disco
  • 4. Lei de Moore Lei de Moore: Inovação em Tecnologia permite dobrar o número de transistores no microchip a cada dois anos “A adoção da liga high-k marca a maior transformação na tecnologia do transistor desde o final da década de 60” – Gordon Moore Capacidades do silicio: • Mais transistores para novas funções de capacidades • Maior desempenho • Menor consumo de potência (chaveamento e fuga) • Menor footprint
  • 5. Porque o processo importa, uma perspectiva histórica em 2004 ………….
  • 6. Hyper-Threading Time(proc.cycles) sem SMT SMT Note: Cada Caixa representa uma unidade de execução do processador • Múltiplos núcleos - Núcleos completamente duplicados - Aparecem como dois (ou mais) processadores físicos para o sistema operacional - Executa threads independentes com seus próprios recursos computacionais - Prove um meio de aumentar o desempenho e minimiza o consumo de potência e dissipação térmica • SMT Multithread simultânea - Executa duas threads ao mesmo tempo por núcleo • Tira vantagem da máquina de execução de 4 vias - Mantêm o processador alimentado com múltiplas threads - Oculta latências de uma única thread • Funcionalidade que provê excelente eficiência de potência - Ocupa uma pequena área do processador - Pode prover ganho significativo de desempenho *dependendo da aplicação*
  • 7. SMT em Mapeamentos de CPU no Linux Topologia do processador • Em /proc/cpuinfo • Você poderá ver 16 CPUs: 0-15 • Processor Topology Tool identifica qual thread está em qual CPU do Linux (e muito mais) Socket 0 OScpu# | 0 8 | 1 9| 2 10| 3 11| Core |c0_t0 c0_t1|c1_t0 c1_t1|c2_t0 c2_t1|c3_t0 c3_t1| Socket 1 OScpu# | 4 12| 5 13| 6 14| 7 15| Core |c0_t0 c0_t1|c1_t0 c1_t1|c2_t0 c2_t1|c3_t0 c3_t1| Ex. Socket 0, Core 0, Thread 1 é Linux CPU 8
  • 8. Comparativo de Desempenho do SMT 1 2 4 8 12 16 20 24 28 32 36 40 44 48 OracleTransactions Threads Typical Oracle OLTP Performance Profile Arquitetura Nehalem com o SMT habilitado Arquitetura Nehalem com o SMT desabilitado Geração anterior como baseline
  • 9. Escalando Frequência com CPUSPEED [root@london1 ~]# cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 26 model name : Intel(R) Xeon(R) CPU X5570 @ 2.93GHz stepping : 5 cpu MHz : 2933.570 cache size : 8192 KB … [root@london1 ~]# service cpuspeed stop Disabling ondemand cpu frequency scaling:[ OK ] [root@london1 ~]# cat /proc/cpuinfo | grep -i MHz cpu MHz : 2927.000 cpu MHz : 2927.000 [root@london1 ~]# service cpuspeed start Enabling ondemand cpu frequency scaling:[ OK ] [root@london1 ~]# cat /proc/cpuinfo | grep -i MHz cpu MHz : 1596.000 cpu MHz : 1596.000 [root@london1 ~]# cat /proc/cpuinfo | grep -i MHz cpu MHz : 1596.000 cpu MHz : 2927.000 Frequências independentes em resposta a demanda Valores dinâmicos em /proc/cpuinfo
  • 11. Exemplo de carga com Oracle Top 5 Timed Events Avg %Total ~~~~~~~~~~~~~~~~~~ wait Call Event Waits Time (s) (ms) Time Wait Class ------------------------------ ------------ ----------- ------ ------ ---------- latch: cache buffers chains 114,324 218,927 2154 72.1 Concurrenc CPU time 25,442 9.1 latch free 1,998 1,342 577 0.2 Other ------------------------------------------------------------- SQL> select * from (select name, addr, spin_gets, gets, misses, sleeps from v$latch_Children where name = 'cache buffers chains' order by gets desc) where rownum < 5; NAME ---------------------------------------------------------------- ADDR SPIN_GETS GETS MISSES SLEEPS ---------------- ---------- ---------- ---------- ---------- cache buffers chains 00000003E1A0A3F8 838682200 1136069722 839855996 4227 cache buffers chains 00000003E164AA10 0 29037 0 0 cache buffers chains 00000003E1A43220 0 14800 0 0 CPU do SO está em 100% porém no Oracle apresenta apenas 9%
  • 12. Memória e o Oracle Connected to: Oracle Database 10g Express Edition Release SQL> show sga; Total System Global Area 805306368 bytes Fixed Size 1289996 bytes Variable Size 197132532 bytes Database Buffers 603979776 bytes Redo Buffers 2904064 bytes SQL>
  • 13. Memória Física e Virtual • Cada processo vê a memoria virtual continua • MMU (Memory Management Unit) na CPU traduz o virtual para a memória física • A TLB (Translation Lookaside Buffer) armazena as traduções mais recentes [root@london1 ~]# cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 26 model name : Intel(R) Xeon(R) CPU X5570 @ 2.93GHz … address sizes : 40 bits physical, 48 bits virtual • 40/44 bit fisico 1TB/16TB de memória • MAXPHYADDR para x86-64 é de 52 bits = 4 Petabytes
  • 14. 48-bit de Endereçamento Virtual • Cada entrada de endereço são de 8 bytes (64 bits) • 48 bits = PML4 + PDP + PDE + PTE + page offset • Atualmente reservados os 16 bits mais altos de endereçamento • bits 48 ao 63 são atualmente o mesmo que o bit 47 • Tamanho de página definido pelo offset • Ex. no Linux #define PAGE_SHIFT 12 • 2 para a potência de 12 = 4KB Page • Ex. endereço linear em x86_64 bit 47 bit 0 47 39 38 30 29 12 20 12 11 0 PML4 Directory Ptr Directory Table Offset • Cada processo necessita 8 bytes por página de 4KB • Até 256TB de espaço de endereço linear
  • 15. Huge Pages • Huge Pages altera o endereçamento de offset (normalmente 2 para o 21° em x86_64 = 2MB) • Parametro do kernel vm.nr hugepages 47 39 38 30 29 21 20 0 PML4 Directory Ptr Directory Offset ... HugePages Total: 0 HugePages_Free: 0 Hugepagesize: 2048kB HugePages_Total: 7500 HugePages_Free: 299 HugePages_Rsvd: 0 Hugepagesize: 2048 kB
  • 17. QuickPath Interconnect Non-Uniform Memory Access (NUMA) Nehalem EP Nehalem EP Tylersburg EP • Arquitetura FSB - Toda a memória em um local • Iniciando com o Nehalem (x86) - Memória localizada em multiplos locais • Latência para memória depende do local • Memória Local - Maior banda - Menor Latência • Memória Remota - Maior Latência Verifique se o software é otimizado para NUMA
  • 18. NUMA e Oracle Subject: Oracle NUMA usage recommendation Doc ID: 759565.1 Type: ALERT Modified Date : 19-JUN-2009 Status: PUBLISHED Disabling or enabling NUMA can change application performance. It is strongly recommended to evaluate the performance after disabling or before enabling NUMA in a test environment. Operating system and/or hardware configuration may need to be tuned or reconfigured when disabling Oracle NUMA support. Consult your hardware vendor for more information or recommendation select a .ksppinm "Parameter", b.ksppstvl "Session Value", c.ksppstvl "Instance Value" from x$ksppi a, x$ksppcv b, x$ksppsv c where a.indx = b.indx AND a.indx = c.indx AND ksppinm like '%NUMA%'; … _enable_NUMA_support TRUE In Alert.log NUMA system found and support enabled (4 domains - 16,16,16,16)
  • 19. NUMA Desabilitada [oracle@london1 ~]$ ipcs -m ------ Shared Memory Segments -------- key shmid owner perms bytes nattch 0x6422c258 32768 oracle 660 4096 0 0x10455eac 98305 oracle 600 15034482688 31 Processor Processor Alocação de 64 bytes 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 dmesg | grep -i numa Command line: ro root=/dev/VolGroup00/LogVol00 numa=off NUMA turned off NUMA OFF : Apenas um nó de memória configurado [root@nehalem1 ~]# numactl --hardware available: 1 nodes (0-0) node 0 size: 18149 MB node 0 free: 2685 MB node distances: node 0 0: 10 Linux enxerga memória como nó 0 apenas PORÉM intercalado pelo Sistema com alocações de 64 bytes Memória eventualmente alocada por padrão.
  • 20. Ou use Huge Pages NUMA Habilitada [oracle@london1 ~]$ ipcs -m ------ Shared Memory Segments --- key shmid owner perms bytes 0xa3c20e68 32768 oracle 660 4096 0 0x00000000 884737 oracle 660 1140850688 28 0x00000000 917506 oracle 660 5905580032 28 0x00000000 950275 oracle 660 5905580032 28 0xfb0938e4 983044 oracle 660 2097152 28 When NUMA is enabled [oracle@london1 ~]$ dmesg | grep -i numa NUMA: Using 31 for the hash shift NUMA ON: dois nós de memória configurados [oracle@nehalem1 ~]$ numactl --hardware available: 2 nodes (0-1) node 0 size: 9059 MB node 0 free: 778 MB node 1 size: 9090 MB node 1 free: 1306 MB node distances: node 0 1 0: 10 21 1: 21 10 Processor Processor Linux enxerga como nó 0 e nó 1 Distâncias transmitem latência Linux e o SGDB devem gerenciar a memória Processor Processor Alocações de 2MB
  • 21. Monitoramento e Estatísticas NUMA /sys/devices/system/node [root@london1 node0]$ more meminfo Node 0 MemTotal: 9276828 kB Node 0 MemFree: 1465256 kB Node 0 MemUsed: 7811572 kB Node 0 Active: 211400 kB Node 0 Inactive: 77752 kB Node 0 HighTotal: 0 kB Node 0 HighFree: 0 kB Node 0 LowTotal: 9276828 kB Node 0 LowFree: 1465256 kB Node 0 Dirty: 28 kB Node 0 Writeback: 0 kB Node 0 FilePages: 170280 kB Node 0 Mapped: 38620 kB Node 0 AnonPages: 199608 kB Node 0 PageTables: 13304 kB Node 0 NFS_Unstable: 0 kB Node 0 Bounce: 0 kB Node 0 Slab: 15732 kB Node 0 HugePages_Total: 3588 Node 0 HugePages_Free: 847 [oracle@london1 ~]$ numastat node0 node1 numa_hit 394822 873142 numa_miss 0 0 numa_foreign 0 0 interleave_hit 11826 11605 local_node 386530 854775 other_node 8292 18367 [root@london1 ~]# numactl --show policy: default preferred node: current physcpubind: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 cpubind: 0 1 nodebind: 0 1 membind: 0 1
  • 22. Considerações sobre banda de memória • Maximum B/W: – DDR3 1333 across 3 channels – Up to 1 DPC (6 DIMMs total) – Max capacity: 48 GB • General purpose: – DDR3 1066 across 3 channels – Up to 2 DPC (12 DIMMs total) – Max capacity: 96GB • Maximum capacity: – DDR3 800 across 3 channels – Up to 3 DPC (18 DIMMs total) – Max capacity: 144GB (DPC – Dimms por canal) CPU CPU CPU CPU CPU CPU 10.6 GB/s 10.6 10.6 8.5 GB/s 8.5 8.5 6.4 GB/s 6.4 6.4 Capacidade de Banda por processador 25.5GB/s 96GB 19.2GB/s 144GB 32GB/s 48GB 6102 9776 27208 33203 36588 HTN 3.16/ BF1333/ 667 MHz mem HTN 3.00/ SB1600/ 800 MHz mem NHM 2.93/ 800 MHz mem/3 DPC NHM 2.93/ 1066 MHz mem/2 DPC NHM 2.93/ 1333 MHz mem/1 DPC Maior é melhor Banda de streaming – Mbytes/Sec +274% Capacidade e Banda na plataforma Memória 1333 MHz Memória 1066 MHz Memória 800 MHz Source: Intel internal measurement – March 2009
  • 23. Exemplo 1 de DMIDECODE #dmidecode Motherboard Handle 0x0003, DMI type 2, 16 bytes Base Board Information Manufacturer: Intel Product Name: S5000PAL0 Processor Processor Information Version: Intel(R) Xeon(R) CPU X5355 Memory Handle 0x0034, DMI type 17, 27 bytes Memory Device Data Width: 64 bits Size: 2048 MB Form Factor: DIMM Set: 1 Locator: ONBOARD DIMM_A1 Bank Locator: Not Specified Type: DDR2 Type Detail: Synchronous Speed: 667 MHz (1.5 ns) • O que isso nos diz: Motherboard 4 canais de memória (S5000PAL0) 8 Slots (A1/A2/B1/B2/D1/D2) canais CPU Intel Clovertown CPUs 1333Mhz (Dual independente FSB) Bandwidth 10666 MB/s por FSB 21 GB/s Máxima banda do FSB Memória Memória DDR2 667 = PC2-5300 4 canais de memória a 5.3GB/s cada Banda de memória a 21 GB/s de todos os 4 canais 16GB memória total
  • 24. Exemplo 2 de DMIDECODE #dmidecode Motherboard Handle 0x0002, DMI type 2, 15 bytes. Base Board Information Manufacturer: Supermicro Product Name: X8DTN Processor Processor Information Version: Intel(R) Xeon(R) CPU X5570 Memory Array Handle: 0x0029 Data Width: 64 bits Size: 1024 MB Form Factor: DIMM Set: 1 Locator: A1_DIMM0 Bank Locator: A1_Node0_Channel0_Dimm0 Type: <OUT OF SPEC> Type Detail: Synchronous Speed: 800 MHz (1.2 ns) • O que isso nos diz: Motherboard 6 canais de memória (X8DTN), 18 slots Node0/Node1,Channel0/1/2, DIMM0/1/2 CPU Intel Nehalem CPUs 3.2GHz QPI (Quickpath Interconnect) Banda de 25.6 GB/s socket to socket Até 32GB/s de banda de memória por CPU Memória Memória DDR3 800 = PC4-6400 6 canais de memória a 6.4GB/s cada Banda de memória a 38.4GB/s de todos os 6 canais 19.2GB/s por processador 18GB memória total
  • 25. Disco e I/O 1 2 4 8 12 16 20 24 OracleTransactions Threads Oracle OLTP I/O Impact on Performance Subsistema de armazenamento “A” Subsistema de armazenamento “B” • Servidores idênticos com CPU e memória • SO e SGDB idênticos • Aplicações idênticas e cargas • Diferentes sistemas de armazenamento Amdahl’s Rule of Thumb 1 byte of memory and 1 byte per second of I/O are required for each instruction per second supported by a computer
  • 26. Dependência de OLTP Redo I/O Event Waits Time(s) Avg wait (ms) % DB time Wait Class log file sync 894,491 5,490 6 61.33 Commit DB CPU 2,116 23.64 db file sequential read 82,013 728 9 8.14 User I/O enq: TX - row lock contention 17,977 116 6 1.29 Application latch: In memory undo latch 44,552 79 2 0.88 Concurrency Per Second Transactions: 4,023.7 Subject: WAITEVENT: "log file sync" Reference Note Doc ID: 34592.1 Type: REFERENCE Modified Date : 14-JUL-2009 Status: PUBLISHED Tune LGWR to get good throughput to disk . eg: Do not put redo logs on RAID 5
  • 27. Dependência de OLTP Redo CPU Event Waits Time(s) Avg wait (ms) % DB time Wait Class log file sync 1,795,089 5,909 3 50.38 Commit DB CPU 2,789 23.78 db file sequential read 162,468 2,703 17 23.05 User I/O enq: TX - row lock contention 23,311 205 9 1.74 Application log file switch completion 1,429 52 37 0.44 Configuration Per Second Transactions: 8,264.3 • Subsistemas de discos idênticos • Memórias identicas • OS e SGDB identicos • Upgrade CPU (LGWR também precisa de CPU) Atualização de memória de uma geração para outra pode trazer até 2x mais desempenho para o redo
  • 28. Desempenho de Disco rígido e CPU 175x CPU vs. 1.3x ganhos com discos rígidos NormalizedPerformance Desempenho de CPU normalizado pelo tempo médio de acesso para leituras de 20k 200 180 160 140 120 100 80 0 Jan '96 Jan '97 Jan '98 Jan '99 Jan '00 Jan '01 Jan '02 Jan '03 Jan '04 Jan '05 Jan '06 Jan '08 Source: Intel measurementsDate Desempenho aferido de ganho de CPU= 175x Desempenho aferido do disco rigido = 1.3X desde 1996 60 40 20 Jan '07 Jan '09 Potencial do SSD Multicore CPU CPU disco
  • 29. Comparativo de Disco Rigido e SSD 1 rack de 120 HDDs 36,000 IOPS 12 GB/sec com banda sustentável 1452 Watts 8.8 TB 1 rack de 120 SSDs 4,200,000 IOPS 36 GB/sec com banda sustentável 288 Watts 3.8 TB Por HDD: – R/W 150 MB/sec – 320 IOPS (Read) – 120 IOPS (Write) – 12.1 W (active) Por SSD: – Read 250 MB/sec – Write 170 MB/sec – 35,000 IOPS (Read) – 4000 IOPS (Write) – 2.4 W (active)
  • 30. SAN vs. SSD para desempenho de OLTP 8 discos SSD 15 discos SAN
  • 31. Desempenho Virtual vs. Nativo Native Performance Drives Virtualized Performance Desempenho do virtualizado é proporcional ao desempenho nativo Nativo Desempenho nativo leva a desempenho do virtualizado Virtual Overhead Nativo Virtual Overhead Overhead da virtualização Overhead aprox. 16%