iostat是Linux系统中用于监控输入/输出(I/O)设备负载的命令行工具,通过观察设备活动时间和平均传输速率来提供统计信息。iostat是sysstat软件包的一部分,对于诊断磁盘使用相关的性能问题、识别瓶颈以及监控存储子系统的整体健康状况具有极高的价值。在Debian Linux上,iostat可以提供关于CPU利用率、设备利用率和吞吐量的详细统计数据,是系统管理员管理和优化磁盘I/O性能的必备工具。

本教程将介绍如何在Debian 12上安装和使用iostat。

在Debian 12上安装iostat

iostat命令包含在sysstat软件包中,该软件包在Debian官方仓库中可直接获取。要在Debian 12上安装iostat,请按以下步骤操作:

第一步:更新系统软件包列表

在安装任何软件之前,最好先更新软件包列表,以确保从仓库中获取最新版本。打开终端并运行:

sudo apt update

此命令会刷新本地软件包数据库,确保系统了解最新版本和安全补丁。

第二步:安装sysstat软件包

iostat命令包含在sysstat软件包中,该软件包还包含其他系统性能监控工具,如mpstatsar。要安装sysstat,运行以下命令:

sudo apt install sysstat

这将下载并安装所需的二进制文件和依赖项。

第三步:启用并配置sysstat服务

安装完成后,需要启用sysstat服务以定期收集性能统计数据。默认情况下,sysstat软件包已安装但其数据收集功能并未启用。要启用它:

1. 使用文本编辑器打开/etc/default/sysstat文件:

sudo nano /etc/default/sysstat

2. 找到ENABLED="false"这一行,将其修改为ENABLED="true"

3. 保存并退出编辑器(在Nano中按Ctrl+O保存,然后按Ctrl+X退出)。

4. 重启sysstat服务以应用更改:

sudo systemctl restart sysstat

现在,sysstat服务将开始收集系统统计数据,包括磁盘I/O信息,这些数据稍后可以使用iostat查看。

在Debian 12上使用iostat

安装完成后,你可以开始使用iostat命令来监控系统的I/O性能。以下是一些常用示例。

基本用法

要显示CPU和设备I/O统计信息的摘要,只需运行:

iostat

此命令将显示自上次系统启动以来的平均CPU负载和磁盘I/O统计数据。第一部分显示CPU使用百分比(用户、系统、空闲等),后续部分列出每个设备的I/O数据,包括tps(每秒事务数)、kB_read/skB_wrtn/s等指标。

Debian 12安装iostat磁盘I/O监控工具教程

实时监控

要实时监控磁盘I/O,可以使用-x参数获取扩展统计数据,并指定刷新间隔。例如,每2秒显示一次更新的统计数据:

iostat -x 2

此命令将每2秒持续刷新输出,为你提供CPU和I/O活动的实时视图。

监控特定设备

如果要监控特定设备,可以按名称指定。例如,仅监控/dev/sda,运行:

iostat -x 2 /dev/sda

这将仅显示指定设备的统计数据,非常适合在排查问题或监控特定磁盘时使用。

iostat监控特定设备输出

查看历史数据

iostat工具还可以显示由sysstat服务收集的历史数据。要查看前一天的I/O活动,使用-h参数配合-p参数查看所有分区。例如:

iostat -h -p ALL

这将为你提供所有设备和分区的详细历史视图。

使用技巧

1. 理解关键指标:

%util:设备繁忙时间的百分比。如果持续接近100%,则该设备可能成为瓶颈。

await:I/O请求完成的平均时间(毫秒)。高值可能表示存在I/O瓶颈。

tps:每秒事务数,衡量每秒I/O操作的数量。高事务数对于繁忙磁盘可能是正常的,但如果同时伴随高await%util,则可能表示存在问题。

2. 定期监控:

设置cron定时任务定期运行iostat并将输出记录到文件中以便后续分析。例如,将以下行添加到crontab中,每10分钟记录一次磁盘I/O:

*/10 * * * * /usr/bin/iostat -x >> /var/log/iostat.log

3. 结合其他工具使用:

iostat非常适合I/O专项监控,但结合其他工具可以获得更全面的系统性能视图:使用tophtop监控CPU和内存,使用iotop查看按进程的I/O情况。