How many disk requests to cache before writing to disk if block sizes are larger, it can consume RAM change X with device number
echo 512 > /sys/block/sdb/queue/nr_requests
Get read-ahead value
blockdev --getra /dev/sdb # 256
Set read ahead parameter
blockdev --setra 16384 /dev/sdb
I/O scheduler
With the newer kernels comes also the option to select the I/O scheduler which makes the decisions on how the read and write buffers are to be queued for the underlying device. You can read more about them in the Linux kernel source documentation: linux/Documentation/block/*iosched.txt
The scheduler which a number of sites have found through testing to be the most useful for high i/o rates is deadline scheduler. You can either select the scheduler already at the kernel compilation time or you can select it later by echo-ing the right one to the block device settings.
You can see the current schedule by catting the block device queue scheduler file:
$ cat /sys/block/sdb/queue/scheduler noop anticipatory [deadline] cfq
and you can set the new scheduler with:
$ echo deadline > /sys/block/sdb/queue/scheduler