APLawrence.com -  Resources for Unix and Linux Systems, Bloggers and the self-employed

See also Invalidating the Linux buffer cache

From: "Tony  Lawrence" <pcu...@gmail.com>
Subject: Re: Is there a way to flush the file cache?
Date: 29 Dec 2006 04:06:58 -0800
Message-ID: <1167394018.640695.74170@73g2000cwn.googlegroups.com> 
References: <4vig1lF1b4vglU18@mid.individual.net> 

General Schvantzkoph wrote:
> On Thu, 28 Dec 2006 13:29:24 -0800, Tony  Lawrence wrote:
> > General Schvantzkoph wrote:
> >> I'm writing a system exerciser that checks memory and disk I/O. Is there a
> >> C call that flushes the file cache so that I can be assured that my freads
> >> are coming from the disk and not the RAM. I'm using a sync() but I don't
> >> think that does the whole job, it guarantees that the disk writes happen
> >> but I don't think it clears out the file cache.
> >
> >
> > Well, of course it can't guarantee that some random app hasn't written
> > data, if that's what you mean..
> >
> What I want to do is the following,
> 1) Create a file and write it to the disk.
> 2) Read that file off of the disk and then check it.
> I'm trying to check the SATA interfaces so it's important that the file go
> to and from the disks. The file cache interferes with this because if the
> file is present in the cache the program will get the cached copy not the
> copy that is on the disk. The sync() call forces the disk writes to happen
> immediately which is half of the battle. The other half is to purge the
> file cache so that all subsequent file reads come from the disk. Is there
> a way to do this?

O, I see now:  you are checking disk performance or maybe even checking
disk integrity.

No, sync won't help with that (because the read can still come from
cache).  What you need to do is overwrite the cache with new data
unrelated to the blocks you want to read.  That could be as simple as a
well placed "ls -lR".. or much more complex.  See


Apparently newer kernels have made this easier:


Tony Lawrence
Unix/Linux/Mac OS X Resources

Got something to add? Send me email.

(OLDER)    <- More Stuff -> (NEWER)    (NEWEST)   

Printer Friendly Version

-> flushing linux buffer cache (sync)

Inexpensive and informative Apple related e-books:

Sierra: A Take Control Crash Course

Take Control of Upgrading to El Capitan

Take Control of Pages

Take control of Apple TV, Second Edition

Take Control of IOS 11

Printer Friendly Version

Have you tried Searching this site?

This is a Unix/Linux resource website. It contains technical articles about Unix, Linux and general computing related subjects, opinion, news, help files, how-to's, tutorials and more.

Contact us

Printer Friendly Version

Be respectful to your superiors, if you have any. (Mark Twain)

Linux posts

Troubleshooting posts

This post tagged:



Unix/Linux Consultants

Skills Tests

Unix/Linux Book Reviews

My Unix/Linux Troubleshooting Book

This site runs on Linode

SCO Unix Sales, Support, & Service

Phone:  707-SCO-UNIX (707-726-8649Toll Free: 833-SCO-UNIX (833-726-8649)