Швидкість зчитування / запису SSD (Intel 530) дуже повільна з RAID 10


11

Пояснення:

У нас є сервер:

  • Модель: HP ProLiant DL160 G6
  • 4 x 240 Гб SSD (RAID-10)
  • Оперативна пам’ять DDR3 72 Гб
  • 2 х L5639
  • RAID-контролер HP P410 (256 МБ, V6.40, версія версії: 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 МБ як швидкість читання ?!)

EDIT: схоже, що команда була неправильною, і ми повинні використати -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 (пакет настроєних утиліт) - Швидкість читання зараз становить 600 Мб / с:

Нарешті, сподіваємось, що ми відключили кеш від рейдового контролера та зробили деякі інші речі раніше, не пощастило, але, оскільки ми перезавантажили сервер і знову встановили ОС, ми забули встановити "настроєні утиліти", як було запропоновано у відповіді 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 Г). Отже, це бар'єр, який впливає на швидкість читання ваших SSD-дисків Intel; 300 Мб / с або менше на привід.

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

  • Продуктивність диска не завжди стосується швидкості послідовного читання / запису. Спробуйте тестування з відповідним інструментом, таким як іозон або боні ++ . Ви все одно отримуєте випадкові переваги вводу / виводу від декількох накопичувачів.

  • На рівні операційної системи встановіть пакет настроєних утиліт та встановіть профіль для enterprise-performanceвидалення бар'єрів для запису з вашої файлової системи та встановіть правильний елеватор вводу / виводу для вашої настройки. Це висвітлено і в інших питаннях .

  • Схоже, ви використовуєте LVM. Це може мати вплив і ...

Ось звіт про іозону для G7 ProLiant, який працює з чотирма споживчими 6G SATA SSD (зменшеними до 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 МБ справді повільно, що ви думаєте, що я повинен зробити, чи допомагає програмне забезпечення?
Ara

2
Гаразд, у DL160 G6 у вас повинні бути два кабелі, що йдуть від контролера RAID до опорної плоскості диска ... 8 слотів приводу. Ваша проблема тут - пропускна здатність накопичувача, методика тестування та налаштування сервера. Спробуйте інші пропозиції, які я вказав у своїй відповіді.
ewwhite

Цікавий біт про те, що P410 робить лише 3G на SATA та конкретні найкращі практики. Мод до. (LVM, однак, не повинен бути сильним нападником з точки зору негативного впливу на продуктивність, також тут зазначається: unix.stackexchange.com/questions/7122/… )
Роман

1
@Ara Для ProLiant немає 6G SATA-контролера. В тім-то й річ. Ваші SSD-диски працюватимуть на цій платформі лише зі швидкістю 3G, якщо ви не використовуєте SSD-диски SAS .
ewwhite

1
@Ara Software RAID потягне за собою підключення до іншого контролера, як-от SAS HBA (наприклад, LSI 9211-8i) ... це дозволить побачити повну пропускну здатність ваших дисків, але є й інші аспекти продуктивності SSD поза чистою послідовна смуга читання / запису.
ewwhite

12

О дорогий, з чого почати?

У цьому багато залучено, і вам потрібно добре зрозуміти все. Якщо просто викинути купу дисків проти RAID-контролера, це не дасть шуканих результатів.

На це не можна легко відповісти. Але принаймні, ось список речей, які ви повинні подивитися:

  • Чи потрібен навіть контролеру пропускну здатність? (-> Листи даних)
  • Чи має у контролера навіть достатня пропускна здатність до хоста (це навіть на v1.0, оскільки це x8)
  • Чи має чипсет системи достатню пропускну здатність (процесор-контролер)? (невідомо)
  • Яку стратегію написання ви доручили використовувати контролеру? ( саме це, швидше за все, вкусило вас )
  • Чи все вирівняно (запуск розділів, НН, ПВ)?
  • Чи гармонізовані розміри блоків? (Розмір смуги RAID, розмір блоку, блоки FS, ...)
  • Чи оптимізована файлова система до налаштування RAID? (Рівень та розмір блоку)

Оскільки ваша пропускна здатність проти всього RAID (ігнорування FS) значно нижча, ніж на одному диску, швидше за все ви неправильно налаштували стратегію запису; Контролер, ймовірно, чекає всіх дисків для підтвердження запису (і якщо ви не маєте оперативну пам’ять на батареї контролера, це може бути вашим кращим інтересом).


це дійсно важче, ніж я думав, я вважав, що це так просто, як оновлення оперативної пам’яті Raid Controller до 512 Мб! , дякую Романе, дозвольте мені перевірити дещо з того, що ви щойно сказали, сподіваючись знайти причину
Ара

Більшість з перерахованих вище є дійсними стратегіями усунення несправностей для крайових випадків, але не стосуються особливостей конфігурації оригінального плаката. Контролер тут має необхідну пропускну здатність і пропускну здатність, процесор прекрасний, контролер RAID за замовчуванням до 25:75 R / W кеш-співвідношення (слід повністю відключити для використання SSD), CentOS6 вирівнює розділи правильно і є занадто багато потенційної абстракції, щоб отримати розміри блоків "гармонізовані". Три проблеми: 6G-диски заглушені на швидкості 3G, перешкоди для запису файлової системи, ймовірно, включені, а елеватор вводу-виводу є CFQ за замовчуванням.
ewwhite

1
На жаль, модель сервера не була помічена під час моєї відповіді. Приємно знати про дроселювання. Я думаю, що бар'єри та CFQ не коштували багато в цьому конкретному «еталоні», але, тим не менш, цінної інформації.
Роман

@ Роман Вибачте, що раніше я не згадував про цю модель, я дуже вдячний за вашу допомогу, я намагаюся як ваші, так і керівництво ewwhite досягти 500-600 МБ, я здогадуюсь, що це найвища швидкість, яку я можу досягти за допомогою цієї межі 3G
Ара

1
Не проблема взагалі. Переконайтеся, що ви переходите за посиланнями у відповідях ewwhite, оскільки конкретні речі стосуються P410 спільно з SSD. Також переконайтеся, що ви розподіляєте чотири диски рівномірно між двома з’єднаннями від задньої площини до контролера.
Роман
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.