我有一个服务器,通过NFS导出主目录。 它们位于软件RAID1(/ dev / sdb和/ dev / sdc)上,操作系统位于/ dev / sda上。 我注意到,由top和sar报告的%iowait相对较高(与其他服务器相比)。 这个值的范围在5-10%之间,其他服务器(比这个负载更多)与0-1%相同。 当%iowait达到12%以上的值时,所谓的用户体验下降。 然后我们遇到延迟。
我在日志中没有任何驱动器错误。 我想避免使用反复试验方法来使用硬盘。
如何找出哪个设备(/ dev / sda,/ dev / sdb或/ dev / sdc)是瓶颈?
谢谢!
编辑:我使用Ubuntu 9.10,已经安装了iostat 。 我对NFS相关的问题不感兴趣,但更多的是如何find哪个设备减慢系统。 NFS没有加载,我有32个线程可用,结果
grep th /proc/net/rpc/nfsd th 32 0 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
编辑2:这是iostat -x 1输出的一部分(我希望我没有违反这里的一些规则):
avg-cpu: %user %nice %system %iowait %steal %idle 45.21 0.00 0.12 4.09 0.00 50.58 Device: rrqm/s wrqm/sr/sw/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 0.00 0.00 21.00 0.00 368.00 0.00 17.52 0.17 8.10 6.67 14.00 sdb 0.00 6.00 0.00 6.00 0.00 96.00 16.00 0.00 0.00 0.00 0.00 sdc 0.00 6.00 0.00 6.00 0.00 96.00 16.00 0.00 0.00 0.00 0.00 dm-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 dm-1 0.00 0.00 21.00 0.00 368.00 0.00 17.52 0.17 8.10 6.67 14.00 dm-2 0.00 0.00 0.00 12.00 0.00 96.00 8.00 0.00 0.00 0.00 0.00 drbd2 0.00 0.00 0.00 12.00 0.00 96.00 8.00 5.23 99.17 65.83 79.00 avg-cpu: %user %nice %system %iowait %steal %idle 45.53 0.00 0.24 6.56 0.00 47.68 Device: rrqm/s wrqm/sr/sw/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 0.00 1.00 23.00 2.00 424.00 24.00 17.92 0.23 9.20 8.80 22.00 sdb 0.00 32.00 0.00 10.00 0.00 336.00 33.60 0.01 1.00 1.00 1.00 sdc 0.00 32.00 0.00 10.00 0.00 336.00 33.60 0.01 1.00 1.00 1.00 dm-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 dm-1 0.00 0.00 23.00 0.00 424.00 0.00 18.43 0.20 8.70 8.70 20.00 dm-2 0.00 0.00 0.00 44.00 0.00 352.00 8.00 0.30 6.82 0.45 2.00 drbd2 0.00 0.00 0.00 44.00 0.00 352.00 8.00 12.72 80.68 22.73 100.00 avg-cpu: %user %nice %system %iowait %steal %idle 44.11 0.00 1.19 10.46 0.00 44.23 Device: rrqm/s wrqm/sr/sw/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 0.00 637.00 19.00 16.00 432.00 5208.00 161.14 0.34 9.71 6.29 22.00 sdb 0.00 31.00 0.00 13.00 0.00 352.00 27.08 0.00 0.00 0.00 0.00 sdc 0.00 31.00 0.00 13.00 0.00 352.00 27.08 0.00 0.00 0.00 0.00 dm-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 dm-1 0.00 0.00 20.00 651.00 456.00 5208.00 8.44 13.14 19.58 0.33 22.00 dm-2 0.00 0.00 0.00 42.00 0.00 336.00 8.00 0.01 0.24 0.24 1.00 drbd2 0.00 0.00 0.00 42.00 0.00 336.00 8.00 4.73 73.57 18.57 78.00 avg-cpu: %user %nice %system %iowait %steal %idle 46.80 0.00 0.12 1.81 0.00 51.27 Device: rrqm/s wrqm/sr/sw/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 0.00 0.00 16.00 0.00 240.00 0.00 15.00 0.14 8.75 8.12 13.00 sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sdc 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
什么是最相关的专栏来看看? 什么样的价值被认为是不健康的? 我想await和%util是我正在寻找的。 在我看来, dm-1是瓶颈(这是DRBD资源元数据)。
双倍感谢!
编辑3:这是我的设置是:
sda =操作系统,没有RAID。 设备上有dm-0和dm-1 ,因为后者是DRBD资源的元数据设备(见下文)。 dm-0和dm-1都是LVM卷; drbd2 = dm-2 = sdb + sdc – >这是RAID1设备,它通过NFS提供用户主目录。 我不认为这是瓶颈。 这里没有LVM卷。
iostat -x 1 ?
我被告知我必须进一步扩大这个答案,但至今我不知道要补充什么。 你不会说你正在使用哪个发行版,所以如果你还没有安装iostat的话,我不能指出你的方法。 但我想这是你要求的。
编辑 :很高兴看到一些iostat输出! 目前,sd [ab]设备具有接近相同的数字,这些数字应该在RAID-1中,并且都不是饱和的; 也不是sdc。 然而,drbd2是; 这是用来做什么的,它会如何影响整个服务器的性能?
编辑2 :我不知道该怎么build议。 您承认drbd2“通过NFS提供用户主目录”,并且您说您有NFS服务器延迟问题。 你产生iostat输出,相当令人信服地说,drbd2是瓶颈的设备。 然后你说“在我看来,dm-1是瓶颈”,“我不认为(drbd2)是瓶颈”。 我不清楚你有什么证据与drbd2是瓶颈的假设相矛盾,但看到它会很高兴。
这是一个使用频繁的NFS服务器? 查找NFS是否是瓶颈的一个好方法是检查NFS进程是如何运行的,以及是否处于等待状态。
grep th / proc / net / rpc / nfsd
128 128 239329954 363444.325 111999.649 51847.080 12906.574 38391.554 25029.724 24115.236 24502.647 0.000 520794.933
第一个数字是可用于服务请求的线程数量,第二个数字是所有线程需要的次数。 剩下的10个数字是一个直方图,显示了一小部分线程已经繁忙了多less秒,从小于10%的线程开始,以超过90%的线程结束。 如果最后几个数字累积了相当长的时间,那么你的服务器可能需要更多的线程。
通过更改/etc/rc.d/init.d/nfs中的RPCNFSDCOUNT = 16,将服务器使用的线程数增加到16
您可以在“服务器线程”标题下的http://billharlan.com/pub/papers/NFS_for_clusters.html阅读更多内容。
你的/ dev / sdb和/ dev / sdc都有非常接近的“await”因子数字。 / dev / sda有一些更大的数字,但它如何影响你的RAID性能没有被包含进去呢? 顺便说一下,你使用LVM进行镜像吗,不是吗?
因此,阅读iostat将帮助您缩小驱动器发生IO问题的范围,但是我发现跟踪导致IO问题的应用程序在实际改善情况方面更有帮助。 对于那个iotop是真棒: