[Fedora-users-br] Analise de acesso ao disco
Robert Pereira
robertjs em gmail.com
Seg Jun 25 17:07:24 UTC 2007
Eduardo:
Em se tratando de tunning para banco de dados relacionais existem algumas
ferramentas que podem ajudar a obter informações a fim de identificar
possíveis gargalos ocasionados por tempo de acesso ao disco elevelado.
O pacote sysstat possui o comando iostat que monitora a carga de entrada e
saída de dispositivos de disco através da observação do tempo em que os
devices estão ativos em relação a suas taxas de transferência médias.
O comando iostat -p sda 2 6 por exemplo exibe na tela em intervalos de dois
segundos um total de seis relatórios para o dispositivo /dev/sda e suas
respectivas partições. Abaixo está a saída de um relatório do iostat para um
servidor Red Hat Enterprise Linux rodando um banco de dados Oracle 10G de
produção de um hospital (mais de 300 clientes).
Linux 2.6.9-34.ELsmp (hostname suprimido) 25-06-2007
cpu-moy: %user %nice %sys %iowait %idle
8,98 0,00 1,83 5,93 83,26
Device: tps Blk_lidos/s Blk_escr./s Blk_lidos Blk_escr.
sda 1,03 1,49 24,42 3984787 65344393
sda1 1,44 0,18 11,42 492106 30555096
sda2 0,07 0,23 0,30 627684 790336
sda3 1,64 1,07 12,70 2864149 33998961
sdb 19,40 56,94 116,35 152401356 311388287
sdb1 27,29 56,94 116,35 152400660 311388287
sdc 8,37 189,88 298,79 508204506 799668994
sdc1 8,78 189,88 298,79 508203826 799668994
sdd 16,18 401,93 2,35 1075720826 6276858
sdd1 16,32 401,93 2,35 1075720146 6276858
sde 40,77 844,01 429,95 2258883433 1150714228
sde1 68,22 844,01 429,95 2258882753 1150714228
sdf 14,35 379,30 3,59 1015157914 9616696
sdf1 14,43 379,30 3,59 1015157234 9616696
sdg 3,74 125,90 2,98 336946298 7965248
sdg1 3,89 125,90 2,98 336945594 7965248
sdh 26,69 627,60 68,19 1679699346 182498589
sdh1 26,88 627,60 68,19 1679698666 182498589
Os percentuais de uso de cpu são para as operações de IO.
Este outro exemplo traz uma saída mais detalhada (favor corrigir a identação
das colunas):
iostat -t -k -d -x sdb sdc sdd sde sdf sdg sdh 3
Linux 2.6.9-34.ELsmp (hostname suprimido) 25-06-2007
Hora: 13:48:23
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s
avgrq-sz avgqu-sz await svctm %util
sdb 0,32 7,57 17,11 2,29 57,03 116,33 28,51 58,17
8,94 0,10 4,92 3,88 7,54
sdc 0,05 0,37 3,04 5,33 189,85 298,77 94,92 149,39
58,39 0,05 5,94 5,11 4,27
sdd 0,02 0,13 16,09 0,10 402,05 2,35 201,03 1,17
24,98 0,03 1,67 1,52 2,46
sde 0,23 27,22 39,69 1,08 843,89 429,84 421,94 214,92
31,25 0,20 4,84 2,27 9,27
sdf 0,02 0,06 14,12 0,23 379,27 3,59 189,64 1,80
26,67 0,03 2,39 2,06 2,95
sdg 0,00 0,15 3,65 0,09 125,87 2,98 62,94 1,49
34,43 0,01 2,40 2,34 0,88
sdh 0,05 0,14 22,89 3,80 627,53 68,19 313,76 34,09
26,07 0,08 3,11 2,73 7,29
Hora: 13:48:26
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s
avgrq-sz avgqu-sz await svctm %util
sdb 0,00 0,00 5,30 1,66 84,77 42,38 42,38 21,19
18,29 0,04 6,43 6,43 4,47
sdc 0,00 0,00 0,33 2,32 5,30 149,67 2,65 74,83
58,50 0,02 7,38 7,37 1,95
sdd 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
0,00 0,00 0,00 0,00 0,00
sde 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
0,00 0,00 0,00 0,00 0,00
sdf 0,00 0,33 0,00 0,66 0,00 7,95 0,00 3,97
12,00 0,00 6,50 6,50 0,43
sdg 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
0,00 0,00 0,00 0,00 0,00
sdh 0,00 0,00 6,29 1,66 100,66 26,49 50,33 13,25
16,00 0,04 4,75 4,75 3,77
Hora: 13:48:29
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s
avgrq-sz avgqu-sz await svctm %util
sdb 0,00 0,33 39,13 2,01 626,09 45,48 313,04 22,74
16,33 0,11 2,60 2,57 10,57
sdc 0,00 0,33 0,00 5,02 0,00 58,19 0,00 29,10
11,60 0,03 6,80 6,80 3,41
sdd 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
0,00 0,00 0,00 0,00 0,00
sde 0,00 0,00 0,00 0,33 0,00 10,70 0,00 5,35
32,00 0,01 18,00 18,00 0,60
sdf 0,00 0,00 0,33 0,00 5,35 0,00 2,68 0,00
16,00 0,00 1,00 1,00 0,03
sdg 0,00 0,00 0,00 0,33 0,00 5,35 0,00 2,68
16,00 0,01 17,00 17,00 0,57
sdh 0,00 0,33 17,73 2,34 283,61 40,13 141,81 20,07
16,13 0,09 4,70 4,70 9,43
A coluna %util exibe o percentual de utilização da capacidade de IO de cada
disco. Valores constantes muito próximos de 100% indicam que há um gargalo
de IO.
Abaixo, no mesmo servidor, capturei o cabeçalho do comando top:
top - 13:40:12 up 30 days, 23:35, 1 user, load average: 3.86, 3.61, 3.53
Tasks: 494 total, 1 running, 493 sleeping, 0 stopped, 0 zombie
Cpu(s): 3.5% us, 0.9% sy, 0.0% ni, 70.5% id, 24.7% wa, 0.1% hi, 0.3% si
Mem: 8060328k total, 7382104k used, 678224k free, 358872k buffers
Swap: 8193140k total, 60284k used, 8132856k free, 4062004k cached
Se você observar, na linha Cpu(s) a coluna wa indica que naquele momento as
operações de IO utilizavam 24% de CPU. Isto é um pico neste ambiente de
produção e não deve ser uma constante. Caso esta coluna sempre tenha valores
altos, há um gargalo de disco sério.
No pacote sysstat também há o comando vmstat que pode lhe dar alguma pista
sobre o desempenho de seu IO.
o comando vmstat 5 100 exibe mil relatórios com intervalos de 5 segundos
procs -----------memory---------- ---swap-- -----io---- --system--
----cpu----
r b swpd free buff cache si so bi bo in cs us sy id
wa
1 0 60284 651464 359336 4064600 0 0 729 118 3 2 9 2
83 6
0 1 60284 648128 359336 4064600 0 0 134 127 3440 1708 4 2
91 4
0 1 60284 646272 359336 4064600 0 0 1019 377 3907 2391 2 1 84
13
0 0 60284 649992 359344 4064592 0 0 99 42 3065 1300 2 1
95 3
A coluna b exibe a quantidade de processos bloqueados aguardando a resposta
de uma requisição de IO que não foi atendida. O valor aceitável é até uma
unidade por CPU.
Como você tem apenas 4 discos utilizar RAID 5 não otimiza a performance,
embora melhore a tolerância a falhas. Usar RAID 0 iria otimizar a
performance mas não ofereceria nenhuma tolerância a falhas.
Uma sugestão (caso o orçamento permita) seria RAID 5 usando 9 discos (1 como
disco de paridadade) ou pelo menos raid 5 com 5 discos (1 como disco de
paridade)
Controladoras com cache pequeno são fatais para a performance. Pelo menos
256MB de cache é aceitável dependendo da sua apĺicação.
Os mans dos comandos podem ajudar mais. Espero que estas informações sirvam
como um pontapé inicial.
Robert Pereira
3Consult Soluções de TI
www.3consult.com.br
Salvador - BA
Ainda neste pacote
Em 25/06/07, Eduardo Nakamatu <enakamatu em gmail.com> escreveu:
>
> Srs,
>
> Tenho um servidor com 4 discos SAS em raid (não me recordo qual), e
> temos instalado nele o banco de dados db2 express-c. Apesar de nossa
> base ser pequena, notaos certa lentidao em alguns processos, e ja
> olhamos processador e memoria, faltando apenas o acesso ao disco.
>
> Pergunto, como poso fazer a analise de acesso ao disco?
>
> --
> Eduardo Nakamatu
> Analista de Negocios Microsiga / Programador ADVPL
> ---------------------------------------------------
> Linux User:
> ---------------------------------------------------
> Mail | enakamatu(at)gmail.com
> Blog | enakamatu.wordpress.com
> Msn | enakamatu em hotmail.com
>
> --
> Fedora-users-br mailing list
> Fedora-users-br em redhat.com
> https://www.redhat.com/mailman/listinfo/fedora-users-br
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listman.redhat.com/archives/fedora-users-br/attachments/20070625/4b9163a1/attachment.htm>
Mais detalhes sobre a lista de discussão Fedora-users-br