Скорость чтения / записи 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

Для этого теста вам, вероятно, следует указать удвоенный объем оперативной памяти, установленной на сервере.
— 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

Большое спасибо, модель "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 в сочетании с твердотельными накопителями. Кроме того, убедитесь, что вы распределяете четыре диска равномерно по двум соединениям от объединительной платы к контроллеру.
— Роман
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.