Messages in this thread | | | Subject | Re: question about max_readahead for ide devices in 2.4? | From | John Salmon <> | Date | Wed, 17 Dec 2003 14:43:42 -0800 |
| |
>>>>> "Andrew" == Andrew Morton <akpm@osdl.org> writes:
Andrew> John Salmon <jsalmon@thesalmons.org> wrote: >> >> >> >> Several "tuning" recommendations suggest that sequential accesses of >> large files, and hence the performance of busy web servers, can be improved >> by changing the maximum readahead value with, e.g., >> >> echo 511 > /proc/sys/vm/max-readahead >> >> But it looks to me like get_max_readahead in filemap.c ignores the >> value set by /proc/sys in favor of max_readahead[major][minor] whenever >> max_readahead[major] is non-NULL. And furthermore that >> max_readahead[major] IS initialized to non-NULL for ide devices in >> init_gendisk. (N.B. I'm looking at 2.4 sources). >> >> Conclusion: echoing a value into /proc/sys/vm/max-readahead won't change the >> readahead behavior for already-probed IDE devices. >> >> Is this correct, or am I missing something?
Andrew> That's correct - it's all a bit weird. You should use
Andrew> blockdev --setra 511 /dev/hda
Andrew> for IDE devices. Not sure about scsi. You may as well set Andrew> /proc/sys/vm/max-readahead to the same thing.
Are you sure? It looks like that invokes the BLKRASET ioctl, which sets an entry in the read_ahead[MAJOR(dev)] array. But the only code that uses the read_ahead[] array is in fs/hfs/file.c, and I'm definitely not using an hfs filesystem.
Or am I missing something else??
Thanks, John Salmon
P.S. The weird thing is that I tried the blockdev --setra suggestoin and it *seemed to* improve performance. This is why drug tests are double-blind ... the patient (the computer) may not be susceptible to the placebo effect, but the doctor (me) may be :-(.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |