NFSv3 Asynchronous Write Depends on Block Size?
- by Joe Swanson
I am trying to figure out if my NFSv3 deployment is performing SAFE asynchronous writes. I suspect that it is doing strictly synchronous writes, as I am getting poor performance in general. I used Wireshark to look at the 'stable' flag in write calls, and look for 'commit' calls.
I noticed that, with especially large block sizes, writes to appear to be performed asynchronously:
dd if=/dev/zero of=/proj/re3/0/zero bs=2097152 count=512
However, smaller block sizes appear to be performed strictly synchronously:
dd if=/dev/zero of=/proj/re3/0/zero bs=8192 count=655360
What gives? How does the client decide whether to tell the server to perform writes synchronously or asynchronously? Is there any way I can get smaller block sizes to be performed asynchronously?