Messages in this thread | | | Subject | Re: clearing filesystem cache for I/O benchmarks | From | Tim Wright <> | Date | Fri, 23 Jul 2004 22:31:30 -0700 |
| |
Take a look at the code in hdparm tool that handles the '-f' option.
Basically calling ioctl(fd, BLKFLSBUF, o) where fd is a file descriptor opened on the block device on which your filesystem resides should be enough to clear the cache.
Regards,
Tim
On Fri, 2004-07-23 at 15:54, Benjamin Rutt wrote: > 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, -- Tim Wright <timw@splhi.com> Splhi - 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/
| |