On 06/13/2012 08:21 AM, Florian Gleixner wrote:
On 06/13/2012 04:03 PM, Boris Epstein wrote:
On Wed, Jun 13, 2012 at 8:03 AM, Florian Gleixner
wrote: Hi,
my NFS client machines (opensuse 12.1) freeze if i try to copy large files to the NFS Server (opensuse 11.4). It seems that the /proc filesystem blocks somewhere and user processes freeze therefore. The files are ~10GB and bigger than RAM+swap (=8GB). It also works if i generate a 10GB file with dd on the nfs mounted filesystem. Can someone confirm? Or has a solution?
Thanks! -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
It is hard to say why things like this happen. Here's one experience I've had.
If the network is weak and can't handle a massive influx of packets sometimes sending few large packets is a better idea. Mount your NFS partition using large rsize/wsize settings (say, 1MB) and see if that helps.
Boris.
Network is GBit switched - no signs of errors at the interface counters. It also happens if i write the file from my laptop with wlan connection. rsize and wsize are default: 262144 bytes. Before i had it at 32k, and then i realized that the default is already higher. The freezes are still there - so i think setting these to 1M will not really help. It also happens with nfs3 and nfs4.
It doesn't much matter what the network speed is. What matters most for file transfers, at least is block size. If the block sizes aren't right then block transfer like dd uses will slow down to the speed of deep frozen molasses. IIRC, nfs also transfers blocks. Someone else had a problem similar to yours some years ago. I don't recall the details but the gist was that he found that the blocks being transferred had to be made smaller. If I recall correctly, in his case, he was using dd to transfer a multi-Gb disk image to a remote disk and the default block size turned out to be much larger than the MTU of the network connection. Initially, everything looked fine but the transfer rate quickly slowed, almost exponentially. By reducing the block size to fit within the MTU, allowing for overhead, he was able to get transfer speeds up to at least a reasonable level. In his case, the optimum block size was a bit smaller than the MTU size. IIRC, further analysis indicated that this was due to a flaw in early network hardware design that everyone else simply imitated. It apparently can't handle too many relatively huge blocks efficiently or some such. It was assumed that network hardware designers would realize this and fix it. Perhaps it hasn't been fixed after all. So you might try using smaller blocks for huge files. Increasing the MTU apparently makes things worse. jd -- -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org