PERC 6/ I | ext4 | raid5 | 4 диска - улучшить производительность записи

Я использую несколько файловых серверов, используя этот контроллер, файловую систему и настройки диска.

Все они страдают от плохой производительности записи, когда 256 МБ кэш-памяти BBU заполнен, я получаю очень высокий iowait (>40) и скорость записи снижается до нескольких МБ / с.
Еще хуже, если серверы сталкиваются со средним или тяжелым чтением во время записи.

Я ищу предложения о том, как настроить контроллер или файловую систему для улучшения производительности записи.

Некоторые данные о Raid Array и Controller:

RAID Level: Primary-5, Secondary-0, RAID Level Qualifier-3
Size:5.456 TB
State: Optimal
Stripe Size: 64 KB
Number Of Drives:4
Span Depth:1
Default Cache Policy: WriteBack, ReadAdaptive, Cached, No Write Cache if Bad BBU
Current Cache Policy: WriteBack, ReadAdaptive, Cached, No Write Cache if Bad BBU
Access Policy: Read/Write
Disk Cache Policy: Enabled
Encryption Type: None

Product Name    : PERC 6/i Integrated
FW Version         : 1.22.12-0952
BIOS Version       : 2.04.00

Данные о файловой системе:

Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize

Используются параметры монтирования по умолчанию, и файловая система была создана с использованием параметров по умолчанию команды mkfs.ext4.

редактировать:
Просто, чтобы проиллюстрировать мой вариант использования, я опишу, что делают эти серверы
Они обслуживают файлы через lighttpd со скоростью 40-80 МБ / с, новые файлы периодически загружаются на серверы через ftp.
Файлы между 800 МБ и 6 ГБ.
Обслуживание файлов работает отлично, без какого-либо заметного IOWait, но каждый раз, когда запускается передача ftp, чтобы получить новые файлы, вы видите, что это действительно сложно.

как и требовалось, вот вывод bonnie++:

Version  1.96       ------Sequential Output------ --Sequential Input- --Random-
Concurrency   1     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
XXXXXXX          8G   580  99 94284  14 61903   9  2853  83 189033  11 420.5   8
Latency             14004us     825ms    1548ms     105ms     202ms   98036us
Version  1.96       ------Sequential Create------ --------Random Create--------
XXXXXXX             -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                  5 +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++
Latency               406us     535us     598us     374us      21us      60us

Используемые диски D-WMAY03176700WDC WD2002FAEX-007BA0 на всех серверах

2 ответа

Решение

Несколько случайных точек:

  • Go Raid 10 [вы потеряете данные в процессе]
  • смонтировать все занятые файловые системы с опцией noatime в fstab
  • Поэкспериментируйте с различными планировщиками ввода-вывода - проверьте, что работает лучше
  • ваши диски кажутся большими - скорее всего, они имеют физический сектор 4 КБ, а не 512 В - убедитесь, что ваши разделы выровнены по границам диска и raid-stripe [ 1, 2; вы потеряете данные в процессе]
  • я предполагаю, что у вас есть много оперативной памяти, которая используется для буферов ввода-вывода, если это так - перенастройте ваш кэш PERC/6i так, чтобы он был только для записи, а не для чтения вперед.
  • скорость записи снова - скажем, X; загрузка дроссельной заслонки, например. 60% X оставить "запасной" IO для чтения.

Вы можете запустить Бонни ++ снова с -n 1024поэтому он создает 1024 файла вместо 5, все это +++ означает, что создание, чтение и удаление 5 файлов было слишком быстрым, чтобы дать вам какие-либо числа для сравнения, так что вы можете знать, какие оптимизации, предложенные выше pQd, могут помочь

Другие вопросы по тегам