I have two nodes (with 3 dedicated data drives each) that are showing drastically different write speeds. Their 'hdparm' output looks identical and their 'hdparm -t -T' output is comparable but running a 'dd' command on a mounted file system yields drastically different write speeds. Using 'dd' to test read speeds again yields similar results.
The servers and hard drives are the exact same models, both are running the same software packages (we use chef to push packages out on our cluster).
I'm looking for ideas of parameters to check or other tests to run that can help me sort out the performance discrepancy. It looks like it's at the OS / FS level but I'm not sure what else to look at. Both mounted file systems are EXT4 with noatime and user_xattr enabled.
Fast server:
hdparm -t -T output:
/dev/sdb1:
Timing cached reads: 2138 MB in 2.00 seconds = 1070.08 MB/sec
Timing buffered disk reads: 232 MB in 3.02 seconds = 76.84 MB/sec
writing out a 4GB test file
$ dd bs=4K if=/dev/zero of=/mnt/vol1/test.file count=1M
1048576+0 records in
1048576+0 records out
4294967296 bytes (4.3 GB) copied, 40.1102 s, 107 MB/s
0.20user 10.91system 0:40.14elapsed 27%CPU (0avgtext+0avgdata 3472maxresident)k
16inputs+8388608outputs (1major+263minor)pagefaults 0swaps
Reading that file back off disk (and to /dev/null)
$ dd bs=4K of=/dev/null if=/mnt/vol1/test.file count=1M
1048576+0 records in
1048576+0 records out
4294967296 bytes (4.3 GB) copied, 53.3914 s, 80.4 MB/s
0.19user 5.80system 0:53.53elapsed 11%CPU (0avgtext+0avgdata 3488maxresident)k
8389872inputs+0outputs (2major+264minor)pagefaults 0swaps
Slow node:
hdparm -t -T output
/dev/sdc1:
Timing cached reads: 1982 MB in 2.00 seconds = 991.27 MB/sec
Timing buffered disk reads: 224 MB in 3.02 seconds = 74.16 MB/sec
$ dd bs=4K if=/dev/zero of=/mnt/vol1/test.file count=1M
1048576+0 records in
1048576+0 records out
4294967296 bytes (4.3 GB) copied, 98.1583 s, 43.8 MB/s
0.35user 17.58system 1:38.17elapsed 18%CPU (0avgtext+0avgdata 3456maxresident)k
8inputs+8388608outputs (0major+263minor)pagefaults 0swaps
$ dd bs=4k of=/dev/null if=/mnt/vol1/test.file count=1M
1048576+0 records in
1048576+0 records out
4294967296 bytes (4.3 GB) copied, 54.7789 s, 78.4 MB/s
0.25user 10.84system 0:54.92elapsed 20%CPU (0avgtext+0avgdata 3488maxresident)k
8389864inputs+0outputs (2major+263minor)pagefaults 0swaps
ddcommands usingtime, so we can see the CPU usage. Also, are the two nodes showing different write speeds under realistic conditions or only under artificial test conditions? (The two files could just be on different physical locations on the drive.) What's the drive make/model? – David Schwartz Dec 11 '11 at 0:23timeoutput, as requested – Buck Dec 12 '11 at 4:01ddcommand with 512 byte writes, rather than 4K writes, the speeds are identical. – Buck Dec 12 '11 at 7:43