First you should know the different types of IO schedulers:
CFQ [cfq] (Completely Fair Queuing) is an I/O scheduler for the Linux kernel and default under many Linux distributions.
Noop scheduler (noop) is the simplest I/O scheduler for the Linux kernel based upon FIFO queue concept.
Anticipatory scheduler (anticipatory) is an algorithm for scheduling hard disk input/output as well as old scheduler which is replaced by CFQ
Deadline scheduler (deadline) - it attempt to guarant
echo noop > /sys/block/hda/queue/scheduleree a start service time for a request.
You can check and modify the scheduler anytime using the following command:
# cat /sys/block/sda/queue/sc
noop anticipatory deadline [cfq]
The scheduler for this machine is CFQ
echo noop > /sys/block/hda/queue/scheduler
This change the scheduler to noop
Changing the queue size
# cat /sys/block/sda/queue/nr_requests
# echo 100000 > /sys/block/sda/queue/nr_requests
According to http://yoshinorimatsunobu.blogspot.com/ increasing the size of the queue
can improve dramatically the performance.