![我的 NFS 挂载是否真的使用了异步?诊断响应时间非常慢](https://linux22.com/image/733797/%E6%88%91%E7%9A%84%20NFS%20%E6%8C%82%E8%BD%BD%E6%98%AF%E5%90%A6%E7%9C%9F%E7%9A%84%E4%BD%BF%E7%94%A8%E4%BA%86%E5%BC%82%E6%AD%A5%EF%BC%9F%E8%AF%8A%E6%96%AD%E5%93%8D%E5%BA%94%E6%97%B6%E9%97%B4%E9%9D%9E%E5%B8%B8%E6%85%A2.png)
我有以下 NFS 挂载:
server:path /mnt/path nfs rw,hard,intr,nfsvers=4,async 0 0
对服务器的 ping 时间约为 60 毫秒,这是相当合理的,但对挂载的任何访问都非常慢。复制一个小图像需要10-30 秒,即使ls
在小目录中也需要几秒钟。这对于 NFSv3 和 NFSv4 都是如此。当尝试每秒约 10 次写入时会发生这种情况。在没有负载的情况下,访问/写入时间较短,但仍然远非即时。
这对我来说很奇怪,因为即使存在传输瓶颈,我也希望async
我的统计和写入调用能够像往返所需的那样快速返回,而不会阻塞那么长时间。
这让我怀疑我的挂载是否真的遵守了该async
选项。在 /proc/mounts 中,列出了以下内容:
server:path /mnt/path nfs4 rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=xxx.xxx.xxx.xxx,local_lock=none,addr=xxx.xxx.xxx.xxx 0 0
async
没有列出,但也没有列出sync
,而且由于async
应该是默认的,所以我不清楚该选项是否实际处于活动状态。有办法知道吗?