我有一台运行Ubuntu Server 12.04的服务器,我想查看磁盘IO统计信息。我已经尝试过top和htop,但是它们都不输出类似于IO的数据。有命令行工具可以执行此操作吗?

评论

这可能是意外的,但是htop具有所有必要的IO监视,但默认情况下未显示

#1 楼

您可能正在寻找iotop。它提供您正在寻找的每个过程的信息。如果运行最新的内核,则需要以超级用户权限运行它,因为对NET_ADMIN权限的一些更改已于一年前完成。只需安装并运行sudo iotop



当循环使用可用方法时,bwm-ng也可以输出一些磁盘I / O统计信息。与iotop相比,Linux上的bwm-ng的优点是您不需要NET_ADMIN功能,因此默认情况下它将以普通用户身份运行。它提供了每个设备的信息,如图中所示。



如果要获取磁盘的生存期统计信息,请尝试smartctl -a /dev/your/disk

评论


用sudo apt安装bwm-ng并安装bwm-ng并用bwm-ng -i disk运行

– ChillarAnand
18 Mar 10 '18在3:58

#2 楼

htop可以显示每个进程的I / O速率,但是您需要添加IO_READ_RATE/IO_WRITE_RATE/IO_RATE列之一。

评论


我特别喜欢IO_RATE列,因为它结合了两个信息。

– Nemo
2015年10月10日在8:59

#3 楼

您可以使用pidstat(免费和开源):

描述:


pidstat命令用于监视当前正在运行的进程和线程
由Linux内核管理。它还可以监视这些进程和线程的子级。

使用-d选项,pidstat可以报告I / O统计信息,前提是您拥有最新的Linux内核。 (2.6.20+),其中带有选项
已编译CONFIG_TASK_IO_ACCOUNTING。因此,请想象您的系统正在
进行大量I / O,并且您想知道哪些任务正在生成
它们




#4 楼

您可以使用iostat:


免费开放源代码
sudo apt-get install -y sysstat

iostat ­-dx 3自系统在第一个
报告,以及后续报告中最后3秒钟的增量,直到被中断为止。



列的含义:



设备:此列提供设备(或分区)名称。
tps:指示每秒发送到设备的传输次数。
Blk_read / s:指示数据量从设备读取的数据以每秒的块数表示。
Blk_wrtn / s:表示以每秒的块数表示的写入设备的数据量。
Blk_read:块的总数读取。
Blk_wrtn:写入的块总数。
kB_read / s:表示从设备读取的数据量,以每秒千字节为单位。
kB_wrtn / s:表示读取的数据量。写入设备的数据表示为每秒千字节。
kB_read:读取的千字节总数。
kB_wrtn:写入的千字节总数。
MB_read / s:表示从设备读取的数据量,以兆字节为单位。
MB_wrtn / s:表示以每秒兆字节表示的写入设备的数据量。
MB_read:读取的兆字节总数。
MB_wrtn:兆字节总数。
rrqm / s:每秒已排队的已合并到设备的读取请求数。
r / s:每秒向设备发出的读取请求数。
w / s:每秒向设备发出的写入请求数。
rsec / s:每秒从设备读取的扇区数。
wsec / s:每秒写入设备的扇区数。
rkB / s:每秒从设备读取的千字节数。
wkB / s:每秒写入设备的千字节数。
rMB / s:从设备读取的兆字节数每秒。
wMB / s:每秒写入设备的兆字节数。
avgrq-sz:发送到设备的请求的平均大小(以扇区为单位)。 > avgqu-sz:发出到设备的请求的平均队列长度。
等待:发出到要服务的设备的I / O请求的平均时间(以毫秒为单位)。这包括
请求在队列中花费的时间以及为它们服务的时间。
svctm:发出给该设备的I / O请求的平均服务时间(以毫秒为单位)。 >%util:向设备发出I / O请求的CPU时间百分比(设备的带宽利用率)。当此值接近100%时会发生设备饱和。



(PS:iotop +1,这是我使用最多的那个)

#5 楼

如果要查看I / O的总体当前状态和性能,以我的经验,最简单,最清晰的方法是atop(大多数发行版中都打包了):


只需阅读顶部的“ DSK”和“ LVM”行,看看发生了什么。如果您的I / O压力很大,它们会变成红色并且很容易发现。这样,您可以在不到一秒钟的时间内查看是否存在I / O问题,读写问题,什么驱动器等。

其他答案都很好太。我通常使用htop来确定哪个过程有故障,iotop用于更集中的测量,iostat可以长期进行,pidstat可以监视特定过程。

#6 楼

我喜欢dstat

Dstat是vmstat,iostat和ifstat的多功能替代品。 Dstat克服了一些限制,并增加了一些额外的功能。

Dstat允许您立即查看所有系统资源,可以将磁盘使用情况与控制器的中断相结合来进行比较,或者可以比较网络带宽数字直接与磁盘吞吐量(在相同间隔内)相关。

Dstat还为您提供列中最详细的信息,并清楚指示输出的大小和单位。

Dstat的独特之处在于,它可以让您为特定磁盘集聚合块设备的吞吐量,或者为一组接口聚合网络带宽。您可以看到组成单个文件系统或存储系统的所有块设备的吞吐量。

Dstat允许将其数据直接写入CSV文件,以供OpenOffice,Gnumeric或Excel创建图形。



以上是命令dstat -D total,sda,sdb,sdc,sdd,sde的示例

有关更多信息,请查看手册页man dstat

评论


不幸的是,它尚未进行更新以与Python 3一起使用。

–seanlinsley
17年7月6日在17:28

实际上是dstat:github.com/dagwieers/dstat/issues/118

–seanlinsley
17年7月6日在17:31

@seanlinsley github.com/rpodgorny/dstat/tree/python3有一些初步的工作。

–古怪的长老
17年7月6日在17:38