clearing filesystem cache for I/O benchmarks

From: Benjamin Rutt
Date: Sat Jul 24 2004 - 00:11:54 EST


How can I purge all of the kernel's filesystem caches, so I can trust
that my I/O (read) requests I'm trying to benchmark bypass the kernel
filesystem cache?

Unfortunately, I cannot:

1) reboot the system

2) re-mount the filesystem where the reads are occuring

So I propose that I am left with the following options:

3) Reading through a file sufficiently larger than the RAM installed
on the system? e.g. read through a 10GB file on a machine with 8GB
of RAM

4) Since I can create the files fresh every time, I would write() them
out using O_DIRECT flag to open(), then the immediately following
read of that file would be guaranteed to avoid pulling it from
cache.

So, can someone evaluate whether how whether options 3 and 4 would
work, or offer other suggestons? And I wouldn't object if the issue
of clearing disk and controller cache entered into the discussion (I'm
thinking #3 would do a better job at clearing disk/controller caches).

In case it is relevant, here are the two relevant kernel versions I'm
using, both under the distribution "Red Hat Enterprise Linux AS
release 3 (Taroon)":

Linux xio11 2.6.6 #2 SMP Wed Jun 9 10:37:24 EDT 2004 i686 i686 i386 GNU/Linux

Linux xio06 2.4.21-9.ELhugemem #1 SMP Tue Apr 27 13:52:32 EDT 2004 i686 i686 i386 GNU/Linux

Thank you,
--
Benjamin Rutt

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/