I have Centos 6.2 in server with this specs:

2xCPU 16 Core AMD Opteron 6282 SE
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

I'm benchmarking IO speed with dd, and view thah if in 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

but if I remove "oflag=direct" option obtain about 80 MB/s. In read benchmark, results are similar:

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

If remove iflag=direct obtain 150MB/s...

I don't understand this huge differences, on other machines y don't have this behavior.

Can I have some kernel parameter misconfigured?


  • Don't test with if=/dev/zero, some newer controllers figure out the pattern and will mess with your numbers. – Chris S Apr 16 '12 at 12:56

Finally the problem was Bios misconfiguration. I have set "Power Management" to "Maximum Performance" profile on BIOS: DELL best practices in power management

With this setting, dd has the same performance with or without oflag=direct

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.