Hello Forum,
I've got the following setup:
- LSI SAS1068E PCI-Express Fusion-MPT SAS
- Hitachi Deskstar 7K1000.C (8x)
- 4-core Xeon
- some Intel server board
- kernel 2.6.34 and 2.6.35 (tried both)
Code:
Fusion MPT base driver 3.04.15
Fusion MPT SAS Host driver 3.04.15
I've also tried the current driver from LSI themselves (v4.2.4, iirc).
Anyway, I'm not using any of the RAID capabilities of the controller but I am accessing the drives directly. I have a ZFS RAID-Z2 (dedup=on, compression=on) across all eight disks which shows a rather bad performance with small writes. And by bad, I mean this bad (measured using bonnie++):
http://imgur.com/bWHoK.png
Anyway, it's the same without dedup and compression and even the same when writing directly to the devices:
Code:
ltm-memorix ~ # dd if=/dev/zero of=/dev/sdb bs=1kB count=500000
500000+0 Datensätze ein
500000+0 Datensätze aus
500000000 Bytes (500 MB) kopiert, 26,0034 s, 19,2 MB/s
Code:
ltm-memorix ~ # dd if=/dev/zero of=/dev/sdb bs=5kB count=100000
100000+0 Datensätze ein
100000+0 Datensätze aus
500000000 Bytes (500 MB) kopiert, 21,2242 s, 23,6 MB/s
Code:
ltm-memorix ~ # dd if=/dev/zero of=/dev/sdb bs=10kB count=50000
50000+0 Datensätze ein
50000+0 Datensätze aus
500000000 Bytes (500 MB) kopiert, 12,7889 s, 39,1 MB/s
Code:
ltm-memorix ~ # dd if=/dev/zero of=/dev/sdb bs=20kB count=25000
25000+0 Datensätze ein
25000+0 Datensätze aus
500000000 Bytes (500 MB) kopiert, 8,44659 s, 59,2 MB/s
Code:
ltm-memorix ~ # dd if=/dev/zero of=/dev/sdb bs=1000kB count=500
500+0 Datensätze ein
500+0 Datensätze aus
500000000 Bytes (500 MB) kopiert, 6,91047 s, 72,4 MB/s
As you can see, write performance gets a lot better with bigger block sizes. What am I doing wrong here? On my desktop machine with its cheap SiL controller I'm getting WAY better throughput.