Linux:如何查看硬盘每秒传输的字节数/时间的实时数字?

Linux:如何查看硬盘每秒传输的字节数/时间的实时数字?

我想看看 Linux 上是否有类似于 Windows 下的 Perfmon 程序。是否存在这样一种终端友好且非 GUI 程序?谢谢。

答案1

iostat 就是你要找的:

   iostat - Report Central Processing Unit (CPU) statistics and input/output statistics for devices and partitions.

像这样调用它将每 2 秒获得 KB/s:

$ iostat -k 2

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sdb               0.89         2.39         1.72     189644     136436
sda               5.42        31.79        40.89    2519836    3240543

答案2

使用iostat。例如,iostat 2将每 2 秒输出一次 io 统计信息。但请注意,它每秒输出一次块。通常,一个块为 4 KB,但可能因实际使用的块设备而异。

答案3

您可能需要每个进程的统计数据:(iostat尽管其他方面都很好)不知道如何做到这一点,但是iotop能。

答案4

如果您想要的不仅仅是 I/O,还可以使用 SAR:

sar 命令将操作系统中选定的累积活动计数器的内容写入标准输出。

sar 文件包含有关处理器、内存、磁盘、网络的信息。这些文件根据系统每天生成,并根据系统配置保留几天。

如果您运行 sar -A,您将获得当天的所有计数器,并且有很多。您还可以运行 sar -A -f /var/log/sa[DD],其中 DD 是月份中的日期,例如 sa01 或 sa14。

如果您需要有关 I/OI 的特定信息,建议尝试以下开关并查看手册页以获取更多详细信息:

-b Report I/O and transfer rate statistics.

-d 报告每个块设备的活动(仅适用于内核 2.4 及更新版本)。

这是一个非常有用的工具,可用于诊断历史问题和性能问题。

相关内容