在 NFS 文件夹中删除和复制文件很慢

在 NFS 文件夹中删除和复制文件很慢

我有一台服务器,用于托管图像并允许一个客户端通过 NFS 访问一个目录。
该目录包含大约 70K 个图像,大小为 12GB。

当我在托管 NFS 目录的服务器上执行类似cp或的命令时,性能非常出色,但是当从 NFS 目录上的客户端执行或命令时,有时会变得非常慢,其中很慢而时间很快:rmcprmreal timeusersys

real    1m33.409s
user    0m0.000s
sys     0m0.000s

我的假设是:

  1. 该目录以某种方式被锁定,从而导致长时间等待
  2. 两台服务器之间的连接不太可靠

这是来自客户的转储nfsstat -c

Client rpc stats:
calls      retrans    authrefrsh
3018431    1          3018571

答案1

您应该noatime在客户端挂载远程文件系统时尝试该选项。

man 8 mount

noatime  -  Do not update inode access times on this 
filesystem (e.g., for faster access on the news  spool
to speed up news servers).

就我而言,它大大提高了写入性能。

答案2

配置:

尝试使用异步而不是同步进行导出。这样,您就不必等待对发出的每个命令的确认(想想这可能会对您的情况中的数据完整性产生的影响)。

联网:

  1. 确保两个链路都运行全双工,并且如果可能的话,整个网络都启用了巨型帧。确保所有设备和交换机都具有相同的设置,否则您将遇到碎片问题。
  2. 使用 Wireshark 或其他工具检查 UDP 碎片。

来源

  1. http://www.tldp.org/HOWTO/NFS-HOWTO/performance.html
  2. http://lists.samba.org/archive/linux/2006-October/016332.html
  3. https://wiki.archlinux.org/index.php/NFS_Troubleshooting

相关内容