Linux:如何找出硬盘是否造成瓶颈?

我不是在问如何找出瓶颈。 我只是知道如何检查硬盘驱动器是否在极限状态下使用(从而导致瓶颈)。

像我可以看到CPU和RAM的使用百分比top
有没有像我可以监视硬盘活动的东西?

本机Linux工具首选。

看一眼:

  • iostat的
  • vmstat -d 2
  • dstat
  • iotop

你想要的sysstat实用程序 :iostat和萨尔是你会发现最有用的,我想。

iostat会给你目前的统计资料。 sar会抓取和存储,并显示您的历史统计。

也可能有用的是iotop ,这是像iostat,但把事情与PIDs。 虽然这个更新,但我对这个知之甚less。

你已经提到过了。 给你一个简单的实时数据足够有用。

检查靠近屏幕顶部的CPU线上的%wa计数器。 它告诉你CPU当前花费在I / O上的时间百分比。 这应该接近于零。

我是iostat在控制台上观看磁盘活动的狂热粉丝。 您将能够看到驱动器提供的服务IOP,吞吐量,利用率,请求等待时间等等。 如果你看到高等待,服务和利用将是放弃。

另一个可以让你在Linux(或AIX)上看到磁盘活动的工具是nmon 。 它将显示一个表或一个条形图,并显示每个分区和每个设备的数据。

sar是答案。 它收集关于队列长度,请求响应时间等的静态信息。您可以交互地运行它,甚至可以在后台运行它,并在稍后分析数据。

iostat(或者nmon,它也以不同的格式显示相同的统计信息)很好地获得系统级别的诊断信息,还有其他工具,如果您需要,它们会更加精细。 我最近被引入到了随操作系统一起提供的blktrace / blkparse中,并且会像系统每个部分的每个IO请求一样logging详细程度。 您可以logging每个进程的IO请求数量和大小,包括交换和文件系统日志等内核进程以及延迟。

我个人觉得sar和iostat太冗长,对我来说是有价值的。 他们采取多行输出,很难查看(我的意见)。 试试collectl! 相同的数据和更多,但更容易阅读输出。 -标记