NFS Buffering

JD jd1008 at gmail.com
Wed Sep 29 02:21:35 UTC 2010



On 09/28/2010 06:26 PM, Samuel Kidman wrote:
>
>
> On Tue, Sep 28, 2010 at 10:07 PM, Simon Andrews
> <simon.andrews at bbsrc.ac.uk <mailto:simon.andrews at bbsrc.ac.uk>> wrote:
>
>     I have a fedora 13 box on which I have a remote mounted nfs share
>     over a
>     fairly slow (10Mb/s) link.  I'm then transferring data onto this share
>     from a different machine using scp.
>
>     The problem is that after scp reports that it's 100% complete the
>     program will hang for ~20 mins before it will move on to another file.
>     At this point it can't be killed.
>
>     It looks like the nfs daemon is caching write data (around 2GB of it)
>     which lets scp think its finished when actually there's loads of data
>     sitting in a write buffer.  The hanging is presumably the time it
>     takes
>     to flush the buffer (there is a process called nfsiod which is active
>     during this time and df shows data is still being written).
>
>     Does anyone know how to either make this buffer smaller, or get rid of
>     it all together so the scp can accruately report on its progress?
>
>     Thanks
>
>     Simon.
>
Hey! Simon,

you could also re-write scp to open the file descriptor with
O_SYNC to force all writes to be synchronous, and you will
obviate the need to call fsync().


More information about the users mailing list