Messages in this thread | | | Date | Mon, 15 Nov 2010 13:39:32 +1100 | From | Dave Chinner <> | Subject | Re: Sync semantics. |
| |
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@fromorbit.com
| |