http://bugzilla.novell.com/show_bug.cgi?id=557760 http://bugzilla.novell.com/show_bug.cgi?id=557760#c12 Neil Brown <nfbrown@novell.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEEDINFO |ASSIGNED Info Provider|jnelson-suse@jamponi.net | --- Comment #12 from Neil Brown <nfbrown@novell.com> 2009-12-16 02:32:48 UTC --- Jon sent me a trace out-of-band. It shows approximately 35 NFSv4 requests: PUT_FH / WRITE(32K) / GETATTR and 2 PUT_FH / COMMIT / GETATTR which is what you would expect. It appears that there was some packet loss. The headers that I see only cover about 1Meg of writes, but the SEQ numbers show closer to 4.7Meg of writes. This over a time of 6.4 seconds, so about 740MB/sec. The only interesting thing I see is that none of the NFS packets started at the beginning of an IP packet - they all started in the middle. This means that the NFS client never pushed out an NFS packet before it had another packet ready to write. This is surprising. You would expect (particularly when just writing lots of zeros), the NFS client would come to a point when it needed to wait for a reply from the server that the data was safe. When it waits, it should push out any pending writes to make sure the request has actually arrived at the server so that it is reasonable to wait. But I see no evidence of that happening. I do see a number of IP packets with PSH set meaning they were pushed out, but they appear to be in the middle of NFS packets, suggesting that the push trigger happened at a lower level in the stack. It could be that the pushed NFS packets were among those that were not captured, but I think that is unlikely. So my guess is that the NFS client is queuing up lots of writes but they aren't getting out into the TCP connection promptly. The NFS client then waits for a reply for a request that the TCP layer hasn't sent yet. Eventually a timer in the TCP layer triggers the PUSH, the NFS request is sent, handled, replied to, and the client continues. This would explain the very slow write throughput. I'll see if I can find justification for the theory in the code. -- Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.