How To: Double Linux disk read performance with readahead parameter

last updated in Categories CentOS, Debian Linux, File system, Hardware, Howto, Linux, RedHat/Fedora Linux, Storage, Suse Linux, Tuning

The open source journal has published an interesting hack. It mostly applies to high-end, multiple-disk storage:

Under the right conditions (that is, with certain hardware configurations which I’ll identify later) it is possible to literally double your sequential read performance from disk. If you noticed the terrible performance of the 3Ware 9500S RAID controller and cared enough to investigate. It all has to do with a sneaky little block device parameter known as readahead. Without going into too much gory detail, readahead controls how much in advance the operating system reads when, well, reading, as its name implies. By default, some operating systems (in particular, RHEL5 Server) sets this to 256 (512-byte sectors), or about 128 KB. When dealing with large filesystems spanning many disks, this paltry figure can actually nuke your performance.

=> HowTo: Linux: Double your disk read performance in a single command


Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

5 comment

  1. Hey, this blog entry is USELESS because the link is now roadkill on the information super highway. If you had at least included the exact name of the readahead parameter then this page – which comes up right at the top of a google search for “linux readahead” would actually be useful.

  2. blockdev -setra xxx
    e.g. blockdev -setra 1024 /dev/sda

    Also try /etc/sysctl.conf:

  3. What’s reported in robert’s post is useful, but not syntactically accurate, as it’s missing a –

    The command I use is typically:

    blockdev –setra 1024 /dev/sda

    for a 512kb readahead

    Have a question? Post it on our forum!