Re: clearing filesystem cache for I/O benchmarks
From: Benjamin Rutt (rutt.4+news_at_osu.edu)
Date: 07/27/04
- Previous message: Jeff Garzik: "Re: [PATCH] Slowly update in-kernel orinoco drivers to upstream current CVS"
- In reply to: Andrew Morton: "Re: clearing filesystem cache for I/O benchmarks"
- Next in thread: Timothy Miller: "Re: clearing filesystem cache for I/O benchmarks"
- Reply: Timothy Miller: "Re: clearing filesystem cache for I/O benchmarks"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
To: linux-kernel@vger.kernel.org Date: Tue, 27 Jul 2004 13:25:17 -0400
Andrew Morton <akpm@osdl.org> writes:
> (Please don't remove people from the email recipient list when doing kernel
> work.)
Sorry, I'm reading via gmane and my newsreader doesn't make it
straightforward to do so. But I'll do it manually for you.
> However... If you write any amount of data to a file with O_DIRECT, that
> will, as a side-effect, remove _all_ of that file's pagecache. In 2.4 as
> well as 2.6. So you could scrub the pagecache by reading the first 4k then
> writing it back with O_DIRECT.
Thanks, that does work for ext3, very well. It's obvious that it
clears kernel page cache and not controller/disk cache.
>> A related question...if no posix_fadvise() advice has been given, does
>> reading sequentially every byte of an 8GB file on a machine with <=
>> 8GB of RAM guarantee that any page cache data that existed on the
>> machine prior to the start of the 8GB read is now gone?
>
> It's not guaranteed that this will work - if the pages which you're trying
> to evict were accessed multiple times then it may take more page
> replacement to reliably shoot them down. But writing a 2xmemory file and
> then deleting it will be a reasonably effective way of evicting most of
> the other pagecache.
OK thanks, I'll take on good faith that this is the best scheme in
general. I was actually doing a somewhat different approach, reading
through a 2x memory "dummy" file before accessing the real file, but
based on your advice, I'll instead just create a 2x "dummy" file,
fsync it, and then delete it.
Thanks for the tips,
-- Benjamin Rutt - 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/
- Previous message: Jeff Garzik: "Re: [PATCH] Slowly update in-kernel orinoco drivers to upstream current CVS"
- In reply to: Andrew Morton: "Re: clearing filesystem cache for I/O benchmarks"
- Next in thread: Timothy Miller: "Re: clearing filesystem cache for I/O benchmarks"
- Reply: Timothy Miller: "Re: clearing filesystem cache for I/O benchmarks"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|