我遇到过一种情况,我看到服务器负载很高(有时高达 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)