Messages in this thread | | | From | Benjamin Rutt <> | Subject | Re: clearing filesystem cache for I/O benchmarks | 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/
| |