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

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

Пояснение:

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

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

но это результат теста скорости чтения в рейде 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 ГБ с raid 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 МБ / с:

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

После установки tuned-utils и выбирая enterprise-storage profile скорость чтения теперь составляет ~ 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

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

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

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

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

  • На уровне операционной системы установите настроенные утилиты пакет и установите профиль на 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

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

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

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

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

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