实现Linux iostat实时查看

1. 介绍

在Linux系统中,iostat命令用于显示CPU、内存和磁盘I/O等性能指标信息。通过实时监控这些指标,我们可以了解系统的负载情况,从而优化系统的性能。本文将教你如何使用iostat命令实时查看Linux系统的磁盘I/O情况。

2. 实现步骤

下面是使用iostat实时查看磁盘I/O的步骤:

journey
    title 实现Linux iostat实时查看
    section 安装sysstat包
    section 配置iostat
    section 查看实时磁盘I/O

3. 安装sysstat包

在开始之前,我们需要安装sysstat包。sysstat是一个性能监测工具,包含了一系列实用程序,其中就包括iostat。

要安装sysstat包,可以使用以下命令:

sudo apt-get update
sudo apt-get install sysstat

这将会更新软件包列表,并安装sysstat包。

4. 配置iostat

安装完成sysstat后,我们需要配置iostat命令的输出。我们可以使用以下命令来编辑iostat的配置文件:

sudo nano /etc/iostat.conf

在打开的文件中,你可以看到以下内容:

# Global configuration
#
# These macros are the default settings for iostat, with a few exceptions.
# Lines beginning with '#' are comments and are ignored.

# exclude = "^(ram|loop|fd\\d+|nbd\\d+|dm-\\d+|sr\\d+|md\\d+|vd\\d+)$"

# node_disk = "^(ram|loop|fd\\d+|nbd\\d+|dm-\\d+|sr\\d+|md\\d+|vd\\d+)$"

# node_partition = "^(ram|loop|fd\\d+|nbd\\d+|dm-\\d+|sr\\d+|md\\d+|vd\\d+)$"

# node_network = "^(ram|loop|fd\\d+|nbd\\d+|dm-\\d+|sr\\d+|md\\d+|vd\\d+)$"

# history = 10080
# interval = 60

我们可以通过修改这些配置来满足我们的需求。

  • exclude:用于排除特定设备,如RAM磁盘、回环设备等。默认情况下,这些设备将不会在iostat的输出中显示。
  • node_disk:用于排除特定磁盘设备。
  • node_partition:用于排除特定分区设备。
  • node_network:用于排除特定网络设备。
  • history:指定历史数据的保存个数,默认为10080(一周)。
  • interval:指定输出间隔,默认为60秒。

根据你的需求,你可以取消注释并修改这些配置。完成配置后,保存并退出编辑器。

5. 查看实时磁盘I/O

现在,我们已经完成了iostat的配置,可以开始实时查看磁盘I/O了。

使用以下命令来查看实时磁盘I/O:

iostat -tx 1

这条命令将会以1秒的间隔实时输出磁盘I/O的信息。

  • -t:以时间戳的形式显示输出结果。
  • -x:显示详细的磁盘I/O统计信息。

当你运行这条命令后,你将会看到类似下面的输出:

Linux 5.4.0-88-generic (hostname)  12/13/2021  _x86_64_  (4 CPU)

avg-cpu:  %user   %nice  %system  %iowait  %steal  %idle
           1.57    0.00     2.25      0.51    0.00   95.67

Device:  tps   kB_read/s   kB_wrtn/s  kB_read  kB_wrtn
sda      0.19       0.06        4.03     2098   141328