У меня есть Centos 6.2 на сервере со следующими характеристиками:
2xCPU 16 Core AMD Opteron 6282 SE
64GB RAM
Raid controller H700 1GB cache NV
- 2HD 74GB SAS 15Krpm RAID1 stripe 16k (OS Centos 6.2) sda
- 4HD 146GB SAS 15Krpm RAID10 stripe 16k (ext4 bs 4096, no barriers) sdb -> /vol01
Raid controller H800 1GB cache nv
- MD1200 12HD 300GB SAS 15Krpm RAID10 stripe 256k (For DB Postgres 8.3.18) (ext4 bs 4096, stride 64, stripe-width 384, no barriers) sdc -> /vol02
Я сравниваю скорость ввода-вывода с помощью dd и смотрю, если в RAID10 12 disk exec:
dd if=/dev/zero of=DD bs=8M count=10000 oflag=direct
10000+0 records in
10000+0 records out
83886080000 bytes (84 GB) copied, 126,03 s, 666 MB/s
но если я удалю опцию "oflag = direct", получите около 80 МБ / с. В тесте чтения результаты аналогичны:
dd of=/dev/null if=DD bs=8M count=10000 iflag=direct
10000+0 records in
10000+0 records out
83886080000 bytes (84 GB) copied, 79,5918 s, 1,1 GB/s
Если удалить iflag = direct, получить 150 МБ / с...
Я не понимаю этой огромной разницы, на других машинах такого поведения нет.
Могу ли я неправильно настроить параметры ядра?
Спасибо!
Наконец, проблема заключалась в неправильной конфигурации Bios. Я установил "Управление питанием" в профиль "Максимальная производительность" в BIOS: Лучшие практики DELL в области управления питанием
С этой настройкой dd имеет одинаковую производительность с или без oflag = direct.