Taxa de transferência de disco irregular na configuração RAID1

3

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.

    
por Nerijus Spl 19.11.2015 / 15:29

2 respostas

1

Possíveis motivos pelos quais vejo:

  1. Por causa dos caches de disco (+ talvez controlador) - eles nunca funcionam da mesma maneira
  2. Firmware diferente
  3. Se você não usar o TRIM em todos os níveis, a velocidade do SSD diminuirá, porque, do ponto de vista do controlador (dentro do disco), o disco estará cheio, então os discos SSD serão mais lentos. Os benchmarks mostram que, geralmente, a velocidade do disco também depende do seu uso.
  4. Relacionado a alocação anterior local importa, é SSD ou não, alguns / a maioria dos SSD tem estrutura semelhante a RAID, portanto a velocidade máxima depende de onde você escreve dados
  5. Diferentes HW do disco para o barramento (incluindo cabo, velocidade do link, controlador, etc.)
  6. Cache de bloco do sistema operacional para o disco - talvez a memória não seja suficiente para equilibrar o cache de ambos os discos ...

hdparm -tT não lhe dará resultados reais de qualquer maneira, ele é armazenado em buffer e nem sempre é tão transparente quanto esperamos, não é necessário expor como os discos funcionam internamente, especialmente em 2 segundos.

Provavelmente, eles estão bem.

    
por 20.11.2015 / 17:29
-2

Descobrimos que seu SBD não está funcionando, essa é minha resposta. Dê uma olhada, você precisa obter um valor como este (testado em 3 servidores diferentes em produção com alta E / S)

1-Timing buffered disk reads: 560 MB in  3.00 seconds = 186.43 MB/sec
2-Timing buffered disk reads: 276 MB in  3.09 seconds =  89.23 MB/sec
3-Timing buffered disk reads: 326 MB in  3.00 seconds = 108.66 MB/sec
5-Timing buffered disk reads: 528 MB in  3.00 seconds = 175.97 MB/sec
6-Timing buffered disk reads: 528 MB in  3.00 seconds = 175.94 MB/sec

Então, o seu tamanho de 1,66 MB está longe, então produza sobrecarga no seu sistema. Espero que ajude!

    
por 20.11.2015 / 14:17