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, могут помочь