服务器负载高,CPU 空闲。NFS 是原因吗?

服务器负载高,CPU 空闲。NFS 是原因吗?

我遇到过一种情况,我看到服务器负载很高(有时高达 20 或 30),而 CPU 使用率却很低(98% 空闲)。我想知道这些等待状态是否是 NFS 文件系统连接的一部分。以下是我在 VMStat 中看到的内容

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  1      0 1298784      0      0    0    0    16     5    0    9  1  1 97  2  0
 0  1      0 1308016      0      0    0    0     0     0    0 3882  4  3 80 13  0
 0  1      0 1307960      0      0    0    0   120     0    0 2960  0  0 88 12  0
 0  1      0 1295868      0      0    0    0     4     0    0 4235  1  2 84 13  0
 6  0      0 1292740      0      0    0    0     0     0    0 5003  1  1 98  0  0
 4  0      0 1300860      0      0    0    0     0   120    0 11194  4  3 93  0  0
 4  1      0 1304576      0      0    0    0   240     0    0 11259  4  3 88  6  0
 3  1      0 1298952      0      0    0    0     0     0    0 9268  7  5 70 19  0
 3  1      0 1303740      0      0    0    0    88     8    0 8088  4  3 81 13  0
 5  0      0 1304052      0      0    0    0     0     0    0 6348  4  4 93  0  0
 0  0      0 1307952      0      0    0    0     0     0    0 7366  5  4 91  0  0
 0  0      0 1307744      0      0    0    0     0     0    0 3201  0  0 100  0  0
 4  0      0 1294644      0      0    0    0     0     0    0 5514  1  2 97  0  0
 3  0      0 1301272      0      0    0    0     0     0    0 11508  4  3 93  0  0
 3  0      0 1307788      0      0    0    0     0     0    0 11822  5  3 92  0  0

据我所知,当 IO 增加时,等待时间也会增加。NFS 可能是导致这种情况的原因吗?还是我应该担心其他原因?这是光纤通道 SAN 上的 VPS 盒。我认为瓶颈不是 SAN。评论?

答案1

您可以尝试使用 iostat 来确定哪个设备生成了 i/o 等待:

# iostat -k -h -n 5

有关更多详细信息,请参阅 iostat 手册页。nfs 通常是问题的一部分,特别是当您提供大量小文件或进行许多文件操作时。您可以使用常用的挂载选项(如 rsize=32768、wsize=32768)来调整 nfs 访问。netapp 有一份很好的白皮书涵盖了这一主题:http://media.netapp.com/documents/tr-3183.pdf

还要确保网络接口上没有丢失。

希望这可以帮助

坦率。

答案2

添加异步/etc/exports 选项帮助我恢复正常的平均负载。

/mnt/dir      *(rw,async,pnfs,no_root_squash,no_subtree_check)

相关内容