Re: Sync semantics.

From: Dave Chinner
Date: Sun Nov 14 2010 - 21:39:47 EST


On Thu, Nov 11, 2010 at 01:52:19PM +0100, Rogier Wolff wrote:
>
> Hi,
>
> What should I expect from a "sync" system call?
>
> The manual says:
>
> sync() first commits inodes to buffers, and then buffers to disk.
>
> and then goes on to state:
>
> ... since version 1.3.20 Linux does actually wait.
>
> [for the buffers to be handed over to the drive]
>
> So how long can I expect a "sync" call to take?
>
> I would expect that all buffers that are dirty at the time of the
> "sync" call are written by the time that sync returns. I'm currently
> bombarding my fileserver with some 40-60Mbytes per second of data to
> be written (*). The fileserver has 8G of memory. So max 8000 Mb of
> dirty buffers can be stored, right? The server writes an average of
> (at least) 40Mb/second to disk. According to my calculator, I will
> have to wait up to 200 seconds for the sync system call to return....
>
>
> # time sync
> 0.000u 0.220s 2:22:23.96 0.0% 0+0k 0+0io 2pf+0w

Depending on the kernel, sync will keep writing if you keep
dirtying. This should be mostly fixed in 2.6.36....

Cheers,

Dave.
--
Dave Chinner
david@xxxxxxxxxxxxx
--
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/