Estou com problema de desempenho causado por IO lento no servidor que possui dois SSDs idênticos na configuração RAID1. Ao usar "atop" notou que o uso de discos não é igual:
DD | md2 | busy 0% | read 0 | write 1717 | MBr/s 0.00 | MBw/s 0.58 | avio 0.00 ms |
DSK | sdb | busy 99% | read 0 | write 842 | MBr/s 0.00 | MBw/s 0.58 | avio 11.8 ms |
DSK | sda | busy 11% | read 0 | write 1058 | MBr/s 0.00 | MBw/s 0.58 | avio 1.01 ms
Pergunta é o que poderia ser causa disso? Por que o uso de sdb é muito maior? Eu já notei o mesmo problema em alguns servidores, por isso é muito improvável que todos eles tenham sdb defeituoso. Além disso, verifique as informações dos discos usando o hdparm para garantir que elas sejam idênticas. Além disso, isso só acontece em servidores que executam o servidor MySQL de produção. Eu estava tentando reproduzir esse problema simplesmente escrevendo e lendo da partição, mas não consegui reproduzir os mesmos resultados dessa maneira. Obrigado por sugestões.
[root@CentOS-67-64-minimal ~]# cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 sdb3[1] sda3[0]
232753344 blocks super 1.0 [2/2] [UU]
md1 : active raid1 sdb2[1] sda2[0]
524224 blocks super 1.0 [2/2] [UU]
md0 : active raid1 sdb1[1] sda1[0]
16777088 blocks super 1.0 [2/2] [UU]
unused devices: <none>
[root@CentOS-67-64-minimal ~]# hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 28484 MB in 2.00 seconds = 14263.62 MB/sec
Timing buffered disk reads: 1096 MB in 3.00 seconds = 365.15 MB/sec
[root@CentOS-67-64-minimal ~]# hdparm -tT /dev/sdb
/dev/sdb:
Timing cached reads: 21656 MB in 2.00 seconds = 10841.67 MB/sec
Timing buffered disk reads: 14 MB in 3.95 seconds = 3.54 MB/sec
[root@CentOS-67-64-minimal ~]# iostat -x 1
Linux 2.6.32-573.3.1.el6.x86_64 (CentOS-67-64-minimal) 2015.11.20 _x86_64_ (8 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
8,96 0,13 4,22 3,93 0,00 82,75
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sdb 0,06 383,28 0,22 164,10 20,26 4275,72 26,15 2,26 13,76 3,21 52,79
sda 2,01 329,12 1,50 218,25 168,39 4275,72 20,22 0,17 0,77 0,35 7,71
md0 0,00 0,00 0,00 0,00 0,01 0,00 8,00 0,00 0,00 0,00 0,00
md1 0,00 0,00 0,00 0,00 0,01 0,00 7,62 0,00 0,00 0,00 0,00
md2 0,00 0,00 1,75 546,03 172,42 4274,38 8,12 0,00 0,00 0,00 0,00
Edições MadHatter :
Aqui está minha saída iostat
sob carga muito leve; observe o% util no fuso do sdb (você pode distinguir minha saída do Nerijus 'pelo nome do host diferente no prompt e manterei minhas edições abaixo da linha (acima)):
[me@lory ~]$ iostat -x 1
[...]
avg-cpu: %user %nice %system %iowait %steal %idle
0.25 0.00 0.50 0.00 0.00 99.25
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sdb 0.00 0.00 0.00 4.00 0.00 20.00 5.00 1.00 272.50 250.00 100.00
sda 0.00 0.00 0.00 4.00 0.00 20.00 5.00 0.07 17.75 17.75 7.10
md1 0.00 0.00 0.00 5.00 0.00 40.00 8.00 0.00 0.00 0.00 0.00
dm-0 0.00 0.00 0.00 4.00 0.00 32.00 8.00 2.51 272.50 250.00 100.00
dm-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
md0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
E aqui está minha hdparm
output:
[me@lory ~]$ sudo hdparm -tT /dev/sda
One-time password (OATH) for 'me':
/dev/sda:
Timing cached reads: 1730 MB in 2.00 seconds = 864.60 MB/sec
Timing buffered disk reads: 436 MB in 3.00 seconds = 145.12 MB/sec
[me@lory ~]$ sudo hdparm -tT /dev/sdb
/dev/sdb:
Timing cached reads: 1580 MB in 2.00 seconds = 789.63 MB/sec
Timing buffered disk reads: 14 MB in 8.43 seconds = 1.66 MB/sec
Eu também posso confirmar que meu /proc/mdstat
indica que não há ressincronização e que parar mysqld
não faz o problema desaparecer.