Benchmark On 2950 (tunning at the kernel Level)

the basic information of the system2950 basic info

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 (spanlength=15)stripesize=128KB ,read=readahead, write=writeback

/sys/block/sdb/queue/nr_requests =512
/sys/block/sdb/device/queue_depth = 128

 /sys/block/sdc/queue/nr_requests =512
/sys/block/sdc/device/queue_depth = 128

readahead =10240blocks (5MB) for both devices

filesize=10GB RAMsize=256MB  

iozone record size=512KB

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

Read performance for different IO schedulers

Re-Read performance for different IO schedulers

Write performance for different IO schedulers

Re-Write performance for different IO schedulers

Random_Read performance for different IO schedulers

Random_Write performance for different IO schedulers

Mix_WorkLoad performance for different IO schedulers

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 (spanlength=15 disks)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

readahead =10240blocks (5MB) for both devices

filesize=10GB RAMsize=256MB  

iozone record size=512KB


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

Read performance for different nr_request

Re-Read performance for different nr_request

Write performance for different nr_request

Re-Write performance for different nr_request

Random-Read performance for different nr_request

Random-Write performance for different nr_request

mix workload for different nr_request

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 - 19 Mar 2008
Topic revision: r20 - 09 May 2012, BenMeekhof
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback