iostat用于获取存储设备和分区的I/O统计信息。iostat是sysstat软件包的一部分。使用iostat,你可以监控存储设备(比如硬驱和SSD)以及分区(磁盘分区)的读/写速度。本文将介绍如何在Linux下使用iostat监控磁盘I/O。

在Ubuntu/Debian上安装iostat:

默认情况下,iostat命令在Ubuntu/Debian上不可用。但你可以使用APT软件包管理器,从Ubuntu/Debian的官方软件包存储库轻松安装sysstat包。正如前面提到,iostat是sysstat软件包的一部分。

先使用以下命令更新APT软件包存储库的缓存:

$ sudo aptupdate

iostat 按M查看 iostat查看磁盘io_CentOS

现在使用以下命令安装sysstat软件包:

$ sudo apt install sysstat

iostat 按M查看 iostat查看磁盘io_CentOS_02

sysstat软件包应已安装。

iostat 按M查看 iostat查看磁盘io_CentOS_03

在CentOS 7上安装iostat:

默认情况下,iostat在CentOS 7上不可用。但sysstat软件包可在CentOS 7的官方软件包存储库中找到。因此,你可以用YUM软件包管理器轻松安装它。

想使用YUM软件包管理器安装sysstat,运行以下命令:

$ sudo yum install sysstat

iostat 按M查看 iostat查看磁盘io_CentOS_04

现在,按y然后按回车键继续。

iostat 按M查看 iostat查看磁盘io_iostat 按M查看_05

现在,按y然后按回车键,接受CentOS 7软件包存储库的GPG密钥。

iostat 按M查看 iostat查看磁盘io_ios_06

sysstat应已安装。

iostat 按M查看 iostat查看磁盘io_硬盘io linux 脚本_07

在Arch Linux上安装iostat:

默认情况下,iostat在Arch Linux上不可用。但sysstat软件包可在Arch Linux的官方软件包存储库中找到。因此,你可以用Pacman软件包管理器轻松安装它。

想安装sysstat,运行以下命令:

$ sudo pacman -Sy sysstat

iostat 按M查看 iostat查看磁盘io_ios_08

现在,按y然后按回车键继续。

iostat 按M查看 iostat查看磁盘io_包管理器_09

sysstat应已安装。

iostat 按M查看 iostat查看磁盘io_包管理器_10

iostat的基本用法:

你可以使用iostat监控计算机的所有存储设备和磁盘分区,如下所示:

$ sudo iostat

如你所见,iostat生成了当时每个存储设备和分区的读/写速度(以kB/s为单位)和总的读/写内容(以kB为单位)。

iostat 按M查看 iostat查看磁盘io_包管理器_11

在上述命令中,iostat仅输出你运行iostat的实例的统计信息。这适用于外壳脚本和自动化。

如果你想查看实时统计信息,可以要求iostat每隔n秒(比如说2秒)更新报告,如下所示:

$ sudo iostat -d 2

如你所见,iostat每隔2秒更新一次报告。

iostat 按M查看 iostat查看磁盘io_包管理器_12

iostat 按M查看 iostat查看磁盘io_iostat 按M查看_13

使用iostat监控特定的存储设备或分区:

默认情况下,iostat监控计算机的所有存储设备。但你也可以使用iostat监控特定的存储设备(比如sda和sdb等)或特定的分区(比如sda1、sda2和sdb4等)。

比如,若想只监控存储设备sda,按以下方式运行iostat:

$ sudo iostat sda

$ sudo iostat -d 2 sda

如你所见,仅监控存储设备sda。

iostat 按M查看 iostat查看磁盘io_硬盘io linux 脚本_14

你还可以使用iostat监控多个存储设备。

比如想监控存储设备sda和sdb,按以下方式运行iostat:

$ sudo iostat sda sdb

$ sudo iostat -d 2 sda sdb

iostat 按M查看 iostat查看磁盘io_CentOS_15

如果你想监控特定分区,还可以这么做。

比如假设你想监控分区sda1和sda2,按以下方式运行iostat:

$ sudo iostat sda1 sda2

$ sudo iostat -d 2 sda1 sda2

iostat 按M查看 iostat查看磁盘io_ios_16

如你所见,只监控分区sda1和sda2。

iostat 按M查看 iostat查看磁盘io_ios_17

作者:Shahriar Shovon