Configuring the Linux Kernel for Hardware RAID
The first point to note here is that the RAID is hardware based. There is absolutely no need for the Linux kernel to perform any kind of disk buffering. Let the RAID controller handle all of the disk I/O.
Configuring the Linux scheduler and changing the default from [cfq] gives I/O improvements. On my system, this change alone increased average I/O speeds on the NFS server from 15MB/s to 54MB/s with a maximum read speed of 95MB/s.
echo "noop" > /sys/block/cciss\!c0d0/queue/scheduler
echo "noop" > /sys/block/cciss\!c0d1/queue/scheduler
The RAID controller and Network cards must not be on shared interrupts.
To check for shared interrupts:
Stop all unnecessary services as shown in the example below.
chkconfig --level 3 xfs off
chkconfig --level 3 sendmail off
chkconfig --level 3 gpm off
Configuring HP RAID Controllers For Video Streaming
Download the hpacucli utility from HP website. Search for HP Array Configuration Utility CLI for Linux
For a video streaming server set RAID Controller cache ratio to 75% read and 25% write.
hpacucli ctrl all show config detail
hpacucli ctrl slot=2 modify cacheratio=75/25
Configuring Linux Disk Read-Ahead
The read-ahead disk cache in the example below is set 512KB. However, this can vary depending on what the system is being used for. For a video streaming server, disk access is mostly sequential, and would benefit from a larger read-ahead. Database servers seek randomly, and would not benefit from read-ahead.
/sbin/blockdev --setra 1024 /dev/cciss/c0d0
/sbin/blockdev --setra 1024 /dev/cciss/c0d1
Configuring Linux Filesystems
For faster disk writes, use the data=journal option and prevent updates to file access times which in itself results in additional data written to the disk.
/dev/cciss/c0d1 /mnt/nfs ext3 defaults,noatime,data=journal