如何为 nfs 客户端进程设置 i/o 优先级?

如何为 nfs 客户端进程设置 i/o 优先级?

配置是:一个linux服务器和一个作为nfs服务器的nas盒(netgear)。

只需将文件从 nfs 共享复制到 nfs 共享,Linux 服务器上的单个进程就可以轻松使用所有 i/o 带宽。i/o 通道被堵塞,服务器上的所有其他进程几乎都会停止等待 i/o。负载增长到 10-20(四个核心),出现越来越多的 pdflush 进程……直到有人停止文件复制。

我如何限制 cp 进程使用的 i/o 带宽?nice当然不会有帮助,但也ionice -c3没有效果。ionice 是否会影响 nfs 挂载?是否有类似nfsnice

答案1

你的是什么 ”大小“ 和 ”大小“值设置为?

通常,现代 Linux NFS 客户端会与服务器协商最大值,但有时,它们可能会偏离基准。例如,我们rsize=1m,wsize=1m在 /proc/mounts 中不知道 NAS 无法支持超过 32768。同样的缓慢,同样的负载飙升效果,正如您所描述的。

将两个值都设置为 32k 后,立即解决了速度缓慢和负载上升的问题,即使在每个 NFS 上复制 GB 时,桌面仍保持完美响应。而且我们的主目录位于 NFS 上...

也许您的 NAS 的 NFS 服务器实现确实有点“炫耀”,因为它提供了超出其能力的容量……?

干杯

答案2

这似乎是 Netgear NAS 无法跟上并导致 I/O 阻塞。NAS 是什么样子的?有多少个驱动器?RAID 配置是什么样子的?这似乎是服务器端的问题。

相关内容