如何监视特定驱动器上的磁盘活动?


35

我想观看USB外置硬盘上的磁盘活动。我知道我可以iotop用来监视每个正在运行的进程的磁盘I / O,但是有没有一种方法可以对每个文件系统进行度量?

Answers:


19

在严格监视磁盘活动方面,dstat比iostat好。

在将文件从一个硬盘驱动器移动到另一个硬盘驱动器时,我正在运行以下命令

dstat -D sda,sdc

欲了解更多信息,请看此页面

https://help.ubuntu.com/community/DiskPerformance


1
非常好。但是这种方式我看不到哪个进程导致IO。因此,我无法查看哪个进程(使用iotop)或哪个设备(使用dstat),但不能同时查看两者。
jlh

我希望我们也可以限制其监测的具体过程
马特·

23

我在这方面不熟练,但是想到了iostat。您可以使用sysstat软件包安装它。祝好运!


6
用法示例: iostat -d 10 /dev/sda将以的10秒间隔为您提供io利用率/dev/sda。我几乎用完watch iostat -d /dev/sda了它的间隔选项。编辑:打我的时候击败了我:)
人,2010年

1
我刚刚读到,报告的第一组值是自系统启动以来发生的统计数据,因此使用似乎没有多大意义watch。诸如此类的连续报告iostat -dk 10将返回更有意义的数字。
ændrük

嗯...我只是不喜欢它填满了我的整个回滚。
人2010年

曲柄打开一个新的终端,然后做
adampski '16

10

自启动以来,iostatsysstat软件包中使用即可提供结果的单个快照。使用interval参数会将仅最后一个间隔的结果附加到输出中。例如,iostat 10将首先显示“自启动以来”的值,然后继续每10秒将最后10秒的统计信息添加到输出中。包括-y用于省略自启动以来统计信息的第一次显示的选项,但应理解,在系统收集第一张快照时,该命令将在指定的间隔内显示为空闲状态。

watch命令结合使用并指示仅收集单个统计间隔时,我发现这最为有效。例如: watch -t -n 0.1 iostat -d -t -y 5 1 在最近5秒钟中每隔5.1秒钟刷新一次活动统计信息。要分解选项和参数...

  • 第一个-t告诉手表忽略标题。这是为了避免混淆,否则标头将包含“ Every 0.1s”,这不代表数据快照。
  • -n 0.1告诉手表运行以下命令每0.1秒。这是监视的最小时间间隔(procps-ng 3.3.9),但请放心,它实际上并不是每0.1秒运行一次命令。在先前实例完成后的0.1秒内,它将运行命令。
  • -d通知的iostat只显示设备的利用率,相关的,因为这个问题是关于磁盘活动。或者,要监视特定磁盘,可以在时间间隔参数之前插入设备名称。
  • 第二个-t开关告诉iostat将刷新时间包括在统计信息中。这很有用,因为更早地忽略了表头,消除了原本应该在那里显示的时间。
  • 所述-y开关省略的“自启动”,从显示的时间间隔的统计信息的第一个屏幕。没有此功能,结果将显示统计信息,因为自启动更新以watch命令为间隔。
  • 5 1是iostat的间隔参数。在这种情况下,一次捕获5秒的统计信息(即1)。因为使用了-y开关,所以只会显示单个数据屏幕。

iostat需要5秒钟来收集数据,然后将其显示在watch中,而0.1秒后watch将再次触发iostat命令。5秒钟后,新数据将替换旧数据,手表将等待0.1秒钟,清洗,漂洗,重复...


9

尝试使用nmon

sudo apt-get install nmon

尝试:

nmon

输出如下:

在此处输入图片说明

按d =磁盘按c = CPU按r = RAM,按v =虚拟内存,内核状态按K,按N =网络并按q或x退出

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.