Скорость чтения / записи SSD (Intel 530) очень низкая с RAID 10

11

Объяснение:

У нас есть сервер:

  • Модель: HP ProLiant DL160 G6
  • 4 х 240 ГБ SSD (RAID-10)
  • 72 ГБ оперативной памяти DDR3
  • 2 х L5639
  • RAID-контроллер HP P410 (256 МБ, V6.40, версия Rom: 8.40.41.00)

SSD-диски - это 4 новых 2,5-дюймовых Intel 530 со скоростью чтения 540 МБ / с и скоростью записи 490 МБ / с.

  • CentOS 6
  • Файловые системы ext4

но это результат теста скорости чтения на рейде 10:

hdparm -t /dev/sda

/dev/sda:
 Timing buffered disk reads:  824 MB in  3.00 seconds = 274.50 MB/sec
[root@localhost ~]# hdparm -t /dev/mapper/vg_localhost-lv_root

/dev/mapper/vg_localhost-lv_root:
 Timing buffered disk reads:  800 MB in  3.01 seconds = 266.19 MB/sec

и это для скорости записи:

dd bs=1M count=512 if=/dev/zero of=test conv=fdatasync
512+0 records in
512+0 records out
536870912 bytes (537 MB) copied, 4.91077 s, 109 MB/s

мы надеялись на скорость чтения 1 ГБ с рейдом 10, но 270 МБ даже не скорость одного диска!

Вопросов:

  1. Почему это так медленно?
  2. Это из-за RAID-контроллера?

Обновление 1 - та же скорость чтения / записи:

После изменения некоторых настроек, как указано в ответах, у меня есть результат ниже:

(Кто-нибудь знает, почему он показывает 4 ГБ вместо 400 МБ в качестве скорости чтения ?!)

РЕДАКТИРОВАТЬ: похоже, что команда была неправильной, и мы должны были использовать -s144g для этого количества оперативной памяти, поэтому он показывает 4 ГБ (как предложено в комментариях ewwhite)

[root@192 ~]# iozone -t1 -i0 -i1 -i2 -r1m -s56g
        Iozone: Performance Test of File I/O
                Version $Revision: 3.408 $
                Compiled for 64 bit mode.
                Build: linux

        Record Size 1024 KB
        File size set to 58720256 KB
        Command line used: iozone -t1 -i0 -i1 -i2 -r1m -s56g
        Output is in Kbytes/sec
        Each process writes a 58720256 Kbyte file in 1024 Kbyte records

        Children see throughput for  1 initial writers  =  135331.80 KB/sec
        Children see throughput for  1 rewriters        =  124085.66 KB/sec
        Children see throughput for  1 readers          = 4732046.50 KB/sec
        Children see throughput for 1 re-readers        = 4741508.00 KB/sec
        Children see throughput for 1 random readers    = 4590884.50 KB/sec
        Children see throughput for 1 random writers    =  124082.41 KB/sec

но старая hdparm -t /dev/sdaкоманда все еще показывает:

Время чтения буферизованного диска: 810 МБ за 3,00 секунды = 269,85 МБ / с

Обновление 2 (пакет tuned-utils) - Скорость чтения теперь 600 МБ / с:

Наконец-то появилась надежда, что мы отключили кэш на контроллере raid и сделали некоторые другие вещи раньше, но не повезло, но, поскольку мы перезагрузили сервер и снова установили ОС, мы забыли установить «tuned-utils», как предложено в ответе ewwhite (Спасибо Ewwhite для этого удивительного пакета вы предложили)

После установки tuned-utilsи выбора enterprise-storageпрофиля скорость чтения теперь составляет ~ 600 МБ / с +, но скорость записи все еще очень низкая (~ 160 МБ) (:

Вот результат для iozone -t1 -i0 -i1 -i2 -r1m -s144gкоманды:

    Children see throughput for  1 initial writers  =  165331.80 KB/sec
    Children see throughput for  1 rewriters        =  115734.91 KB/sec
    Children see throughput for  1 readers          =  719323.81 KB/sec
    Children see throughput for 1 re-readers        =  732008.56 KB/sec
    Children see throughput for 1 random readers    =  549284.69 KB/sec
    Children see throughput for 1 random writers    =  116389.76 KB/sec

Даже с hdparm -t /dev/sdaкомандой имеем:

Время чтения буферизованного диска: 1802 МБ за 3,00 секунды = 600,37 МБ / с

Любые предложения по очень медленной скорости записи?

Обновление 3 - Некоторая информация запрашивается в комментариях:

Скорость записи по-прежнему очень низкая (~ 150 МБ / с, что не составляет 1/3 от одного диска)

Выход для df -hи fdisk -l:

[root@192 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       441G  3.2G  415G   1% /
tmpfs            36G     0   36G   0% /dev/shm


[root@192 ~]# fdisk -l
Disk /dev/sda: 480.0 GB, 480047620096 bytes
255 heads, 63 sectors/track, 58362 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00040c3c

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1       58363   468795392   83  Linux
Ara
источник
Для этого теста вам, вероятно, следует указать удвоенный объем оперативной памяти, установленной на сервере.
Ewwhite
Можете ли вы сказать нам версию прошивки вашего контроллера Smart Array P410?
Ewwhite
@ewwhite спасибо за ваш комментарий, версия прошивки p410 (256MB, V6.40) и версия rom 8.40.41.00, моя команда iozone была неправильной? если да, не могли бы вы сказать мне правильную команду для тестирования? потому что все, что я пытаюсь, я получаю скорость чтения в ГБ
Ара
Здесь что-то не так. Вы получаете только ~ 122 МБ / с записей. Цифры 4 ГБ / с, которые вы видите, являются операциями из кэша, поэтому ваша командная строка должна выглядеть следующим образом iozone -t1 -i0 -i1 -i2 -r1m -s144g. :(
Ewwhite
@ewwhite Большое спасибо, скорость чтения сейчас очень хорошая (подробно как обновление 2 в моем вопросе), но скорость записи очень разочаровывает, есть ли у вас какие-либо предложения для этого?
Ара

Ответы:

16

В то время как другой ответ здесь поднимает некоторые вопросы, ваши конкретные проблемы связаны с ограничениями платформы и конфигурацией ОС:

  • Вы ограничены в пропускной способности благодаря использованию пользовательских SSD-дисков SATA на RAID-контроллере HP Smart Array P410 . На этих контроллерах диски SATA работают со скоростью 3,0 Гбит / с (3G), а не с 6,0 Гбит / с (6 ГБ). Так что это барьер, который влияет на скорость чтения ваших твердотельных накопителей Intel; 300 МБ / с или меньше на диск.

  • Контроллер Smart Array P410 предъявляет особые требования и рекомендации при использовании с твердотельными накопителями. Короче говоря, контроллер способен производить 50000 операций ввода-вывода в секунду, отключить ускоритель массива для объема вашего SSD, а производительность превысит ~ 6 дисков.

  • Производительность диска не всегда зависит от скорости последовательного чтения / записи. Попробуйте сравнительный анализ с подходящим инструментом, таким как iozone или bonnie ++ . Вы по-прежнему получаете преимущества случайного ввода-вывода от нескольких дисков.

  • На уровне операционной системы установите пакет tuned-utils и установите профиль, чтобы enterprise-performanceудалить барьеры записи из ваших файловых систем и установить правильный лифт ввода-вывода для вашей настройки. Это также рассматривается в других вопросах .

  • Похоже, вы используете LVM. Это также может оказать влияние ...

Вот отчет по iozone для G7 ProLiant, работающего с четырьмя потребительскими твердотельными накопителями SATA 6G (с понижением частоты до 3G) на одном и том же RAID-контроллере HP Smart Array P410.

Вы должны увидеть записи ~ 470 МБ / с и 650 МБ / с +.

[root@mdmarra /data/tmp]# iozone -t1 -i0 -i1 -i2 -r1m -s56g
        Iozone: Performance Test of File I/O
                Version $Revision: 3.394 $
                Compiled for 64 bit mode.
                Build: linux 

        Record Size 1024 KB
        File size set to 58720256 KB
        Command line used: iozone -t1 -i0 -i1 -i2 -r1m -s56g
        Output is in Kbytes/sec
        Each process writes a 58720256 Kbyte file in 1024 Kbyte records

        Children see throughput for  1 initial writers  =  478209.81 KB/sec
        Children see throughput for  1 rewriters        =  478200.84 KB/sec
        Children see throughput for  1 readers          =  677397.69 KB/sec
        Children see throughput for 1 re-readers        =  679523.88 KB/sec
        Children see throughput for 1 random readers    =  437344.78 KB/sec
        Children see throughput for 1 random writers    =  486254.41 KB/sec
ewwhite
источник
Большое спасибо, модель "DL160 G6", да, в ней задействована объединительная плата :( Я бы даже был рад 600 МБ здесь, но 270 МБ очень медленные, что, по вашему мнению, я должен сделать, помогает программный рейд?
Ара
2
Хорошо, с DL160 G6 у вас должно быть два кабеля, идущих от RAID-контроллера к объединительной плате диска ... 8 слотов для дисков. Ваша проблема здесь - пропускная способность диска, ваша методология тестирования и настройки сервера. Попробуйте другие предложения, которые я перечислил в своем ответе.
ewwhite
Интересно, что P410 делает только 3G на SATA, и конкретные рекомендации. Мод вверх. (LVM, однако, не должен быть сильным нападающим с точки зрения негативного влияния на производительность, также отмечено здесь: unix.stackexchange.com/questions/7122/… )
Роман
1
@Ara Для ProLiant нет контроллера 6G SATA. В этом-то и дело. Ваши SSD будут работать только на скорости 3G на этой платформе, если вы не используете SAS SSD.
ewwhite
1
@Ara Software RAID повлечет за собой подключение к другому контроллеру, такому как SAS HBA (например, LSI 9211-8i) ... это позволит вам увидеть полную пропускную способность ваших дисков, но есть и другие аспекты производительности SSD, помимо чистого пропускная способность последовательного чтения / записи.
13
12

О боже, с чего начать?

В этом так много всего, и вам нужно хорошее понимание всего. Простое добавление нескольких дисков к RAID-контроллеру не даст желаемых результатов.

Это не может быть легко ответ. Но, по крайней мере, вот список вещей, которые вы должны посмотреть:

  • Контроллер даже имеет необходимую пропускную способность? (-> Таблицы)
  • Имеет ли контроллер достаточную пропускную способность для хоста (даже на версии 1.0, так как он x8)
  • Достаточно ли пропускной способности системного чипсета (CPU-Controller)? (Неизвестно)
  • Какую стратегию записи вы поручили контроллеру использовать? ( это то, что, скорее всего, укусил вас )
  • Все выровнено (разделы начинаются, LV, PV)?
  • Согласованы ли размеры блоков? (Размер полосы RAID, размер блока, блоки FS, ...)
  • Оптимизирована ли файловая система для настройки RAID? (Уровень и размер блока)

Поскольку ваша пропускная способность для всего RAID (без учета FS) значительно ниже, чем для одного диска, вероятно, вы неправильно настроили стратегию записи; Контроллер, вероятно, ожидает, пока все диски подтвердят запись (и если у вас нет оперативной памяти на резервной батарее контроллера, это может быть в ваших интересах).

Роман
источник
это действительно сложнее, чем я думал, я думал, что это так же просто, как обновить оперативную память Raid Controller до 512 МБ! Спасибо, Роман, позвольте мне проверить кое-что из того, что вы только что сказали, в надежде найти причину
Ара
Большинство из вышеперечисленных являются действительными стратегиями устранения неполадок для крайних случаев, но не относятся к особенностям конфигурации исходного плаката. Контроллер здесь имеет требуемую пропускную способность и пропускную способность, процессор в порядке, контроллер RAID по умолчанию использует соотношение кэш-памяти 25:75 (должно быть полностью отключено для использования SSD), CentOS6 правильно выравнивает разделы, и существует слишком много потенциальных абстракций для получения. размеры блока "гармонизированы". Три проблемы под рукой: диски 6G регулируются на скоростях 3G, барьеры записи файловой системы, вероятно, включены, и лифт ввода-вывода является CFQ по умолчанию.
Ewwhite
1
Модель сервера, к сожалению, не была замечена во время моего ответа. Полезно знать о регулировании. Я думаю, что барьеры и CFQ не стоили дорого в этом конкретном «тесте», но, тем не менее, ценная информация.
Роман
@Roman Извините, я не упомянул модель раньше, я очень ценю вашу помощь, я пробую и ваши, и руководства ewwhite набрать 500-600 МБ, я думаю, это самая высокая скорость, которую я могу достичь с этим ограничением 3G
Ара
1
Совершенно никаких проблем. Обязательно следуйте ссылкам в ответах ewwhite, так как есть определенные вещи, которые нужно сделать с P410 в сочетании с твердотельными накопителями. Кроме того, убедитесь, что вы распределяете четыре диска равномерно по двум соединениям от объединительной платы к контроллеру.
Роман