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

ænd*_*rük 44 performance usb-drive

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

Mat*_* J. 28

在严格监控磁盘活动方面,dstat 优于 iostat。

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

dstat -D sda,sdc
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请查看此页面

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

  • 非常好。但是这样我就看不到哪个进程导致了 IO。所以我坚持要查看哪个进程(使用 iotop)或查看哪个设备(使用 dstat),但不能同时查看两者。 (3认同)

Leo*_*lla 23

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

  • 用法示例:`iostat -d 10 /dev/sda` 将为您提供 `/dev/sda` 的 10 秒间隔内的 io 利用率。我几乎会在其间隔选项中使用`watch iostat -d /dev/sda`。编辑:在我打字时打败我:) (6认同)

小智 14

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

我发现这与watch命令结合使用时最有效,并指示仅收集单个统计数据间隔。例如:

watch -t -n 0.1 iostat -p sda,sdc -d -t -y 5 1
Run Code Online (Sandbox Code Playgroud)

这会在过去 5 秒内每 5.1 秒刷新一次活动统计信息。分解选项和参数...

  • 第一个-t告诉watch省略标题。这是为了避免混淆,否则标题将包含不代表数据快照的“每 0.1 秒”。
  • -n 0.1告诉watch运行下面的命令每0.1秒。这是watch( procps-ng 3.3.9)的最小间隔,但别担心,它实际上并不是每 0.1 秒运行一次命令。它将在前一个实例完成后 0.1 秒运行命令。
  • -p sda,sdc通知iostat只显示统计这些设备。
  • -d通知iostat自提是关于磁盘活动唯一的显示设备利用率有关。
  • 第二个-t开关告诉iostat在统计信息中包含刷新时间。这很有用,因为先前省略watch标题删除了本应存在的时间显示。
  • 所述-y开关省略的“自启动”,从显示的时间间隔的统计信息的第一个屏幕。如果没有这个,结果将是在 watch 命令的时间间隔内显示自启动更新以来的统计信息。
  • 5 1iostat间隔参数。在这种情况下,一次捕获 5 秒的统计信息(1)。因为使用了-y开关,所以这只会显示一个数据屏幕。

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


Ram*_*and 11

nmon试试

sudo apt-get install nmon
Run Code Online (Sandbox Code Playgroud)

尝试:

nmon
Run Code Online (Sandbox Code Playgroud)

输出如下:

在此处输入图片说明

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