Benchmark On 2950 (tunning at the kernel Level)
basic device configuration
For the following tests, the basic configuration of the devices is:
2 devices: /dev/sdb and /dev/sdc, each is mapped to a perc6E(raid controller)
hosted 2MD1000(2*15 SATA II disks),
the raid configurations is as:
raid50 stripesize=128KB ,read=readahead, write=writeback
/sys/block/sdb/queue/nr_requests =128
/sys/block/sdb/device/queue_depth = 128
/sys/block/sdc/queue/nr_requests =128
/sys/block/sdc/device/queue_depth = 128
different IO schedulers
commands used to change the IO scheduler
echo anticipate >/sys/block/sdb/queue/scheduler
echo anticipate >/sys/block/sdc/queue/scheduler
echo cfq >/sys/block/sdb/queue/scheduler
echo cfq >/sys/block/sdc/queue/scheduler
echo deadline >/sys/block/sdb/queue/scheduler
echo deadline >/sys/block/sdc/queue/scheduler
echo noop >/sys/block/sdb/queue/scheduler
echo noop >/sys/block/sdc/queue/scheduler
conclusion about different IO schedulers.
As we can see from the plots, the deadline and noop are doing much better than the other 2 scheduler.. if we calculated the average performance on multiple threads,
the deadline is doing a little bit better than noop..
so we will choose deadline for our system as the IO scheduler for both devices..
different size for nr_queue
For the following tests, the basic configuration of the devices is:
2 devices: /dev/sdb and /dev/sdc, each is mapped to a perc6E(raid controller)
hosted 2MD1000(2*15 SATA II disks),
the raid configurations is as:
raid50 stripesize=128KB ,read=readahead, write=writeback
/sys/block/sdb/device/queue_depth = 128
/sys/block/sdb/queue/scheduler = deadline
/sys/block/sdc/device/queue_depth = 128
/sys/block/sdc/queue/scheduler = deadline
commands used to change the nr_queue number
echo 128 > /sys/block/sdb/queue/nr_requests
echo 128 > /sys/block/sdc/queue/nr_requests
echo 256 > /sys/block/sdb/queue/nr_requests
echo 256 > /sys/block/sdc/queue/nr_requests
echo 512 > /sys/block/sdb/queue/nr_requests
echo 512 > /sys/block/sdc/queue/nr_requests
echo 1024 > /sys/block/sdb/queue/nr_requests
echo 1024 > /sys/block/sdc/queue/nr_requests
conclusion about different size of nr_queue
As we can see from the plots , the length of request queue has some influence on the IO performance,
especially for the re-read and write.. from the average number of performance, the best length for the
request queue for our system is 512..
-- WenjingWu - 17 Mar 2008