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
Featured Articles:
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- Linux: 20 Iptables Examples For New SysAdmins

- My 10 UNIX Command Line Mistakes
- 25 PHP Security Best Practices For Sys Admins
- The Novice Guide To Buying A Linux Laptop
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- Top 20 OpenSSH Server Best Security Practices
- Top 10 Open Source Web-Based Project Management Software
Facebook it - Tweet it - Print it -
We're here to help you make the most of sysadmin work. So, subscribe!


{ 4 comments… read them below or add one }
Very interesting
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.
blockdev -setra xxx
e.g. blockdev -setra 1024 /dev/sda
Also try /etc/sysctl.conf:
/sys/bus/scsi/drivers/sd/[DEVICEID]/block/queue/read_ahead_kb
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