Optimization of read performance under Linux on 3ware
Posted by Gurpreet Singh on 16 August 2011 04:28 AM
How to increase Read performance under Linux on 3ware controllers.
For the Linux 2.4 kernel:
Tuning Linux VM parameters may help to increase the read performance, depending your RAID type, application, and other factors. You can try this setting and see if it helps increase performance in your situation.
The settings are: To make the change without having to reboot (change will not survive after a reboot), type the following from a command prompt:
echo "2048" >/proc/sys/vm/min-readahead
echo "2048" >/proc/sys/vm/max-readahead
To make the change permanent, modify /etc/sysctl.conf and add the following lines:
In addition, you can modify the bdflush parameter:
sysctl -w "vm.bdflush=10 500 0 0 500 3000 0 20 0"
Other information on Linux system tuning is available from: http://people.redhat.com/alikins/system_tuning.html
For Linux kernel 2.6, If you enter the following command:
blockdev --setra X /dev/sda
blockdev --setra 16384 /dev/sda
(Note: 16384 is just an example value. You will have to do testing to determine the optimal value for your system). The OS will read-ahead X pages, and throughput will be higher.
To make the change available every time you boot, you can add the 'blockdev --setra 16384 /dev/sda', 'blockdev --setra 16384 /dev/sdb', 'blockdev --setra 16384 /dev/sdc', etc. to /etc/rc.d/rc.local .
You can also put a setting in /etc/sysctl.conf which will set the read-ahead on boot: /sys/bus/scsi/drivers/sd/[DEVICEID]/block/queue/read_ahead_kb