Назад | Перейти на главную страницу

Неравномерная пропускная способность диска в конфигурации RAID1

У меня проблема с производительностью, вызванная медленным вводом-выводом на сервере, который имеет два идентичных SSD в конфигурации RAID1. При использовании «поверх» заметил, что использования дисков нет даже:

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 

Вопрос в том, что могло быть причиной этого? Почему использование sdb намного выше? Я уже заметил ту же проблему на нескольких серверах, поэтому очень маловероятно, что на всех из них есть неисправный SDB. Кроме того, проверил информацию о дисках с помощью hdparm, чтобы убедиться, что они идентичны. Кроме того, это происходит только на серверах с производственным сервером MySQL. Я пытался воспроизвести эту проблему, просто записывая и читая данные из раздела, но мне не удалось воспроизвести таким образом те же результаты. Спасибо за предложения.

[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

MadHatter правки:

Вот мой iostat выход при очень небольшой нагрузке; обратите внимание на% util на шпинделе sdb (вы можете отличить мой вывод от Nerijus по другому имени хоста в приглашении, и я сохраню свои правки под строкой (вверху)):

[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

И вот мой hdparm вывод:

[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

Я также могу подтвердить, что мой /proc/mdstat указывает на отсутствие повторной синхронизации, и остановка mysqld не устраняет проблему.

Возможные причины я вижу:

  1. Из-за дисковых кешей (+ возможно, контроллера) они никогда не работают одинаково
  2. Разные прошивки
  3. Если вы не используете TRIM на всех уровнях, тогда скорость SSD будет ниже, потому что с точки зрения контроллера (внутри диска) диск будет заполнен, а затем диски SSD будут медленнее. Тесты показывают, как правило, скорость диска также зависит от его использования.
  4. Связано с предыдущим - размещение место имеет значение, SSD это или нет, некоторые / большинство SSD имеют структуру типа RAID, поэтому максимальная скорость зависит от того, куда вы записываете данные
  5. Различное аппаратное обеспечение от диска к шине (включая кабель, скорость соединения, контроллер и т. Д.)
  6. Блочный кеш ОС для диска - возможно, памяти недостаточно для балансировки кеша для обоих дисков ...

hdparm -tT в любом случае не даст вам реальных результатов, он буферизован и не всегда настолько прозрачен, как мы ожидаем, он не обязательно раскрывает внутреннюю работу дисков, особенно за 2 секунды.

Наверное, они в порядке.

Мы выяснили, что ваш SBD не в состоянии здоровья, это мой ответ. Взгляните, вам нужно получить такое значение (протестировано на 3 разных серверах в производстве с большим количеством операций ввода-вывода)

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

Так что ваши 1.66 МБ это пока что ... значит, ваша система перегружена. Я надеюсь, что это помогает!