linux如何查看系统io
- Linux
- 2025-07-21
- 4181
iostat、
vmstat、
dstat等命令查看系统IO情况
Linux系统中,查看系统I/O(输入/输出)情况是监控系统性能和诊断问题的重要手段,以下是一些常用的命令和工具,以及它们的详细用法:
iostat 命令
iostat 是一个强大的工具,用于报告CPU、设备和分区的各种统计信息,包括I/O活动,它属于 sysstat 包,如果系统中没有安装,可以使用 sudo apt-get install sysstat 进行安装。
常用选项:
-d:显示硬盘统计信息。-x:显示扩展统计信息,包括每个设备的平均请求大小和队列长度等。-k:以Kilobytes为单位显示。-m:以Megabytes为单位显示。-t:显示时间戳。
示例:
iostat -d -x -k 1
这将每秒更新一次显示硬盘的I/O统计信息,包括读写速率、平均响应时间等。
vmstat 命令
vmstat 命令用于报告虚拟内存、进程、CPU和I/O等系统性能指标,它也属于 sysstat 包。
常用选项:
-d:显示磁盘统计信息。1:每秒更新一次统计信息。
示例:
vmstat -d 1
这将每秒更新一次显示系统的虚拟内存、进程、CPU和I/O统计信息。
sar 命令
sar 是系统活动报告工具,可以提供系统性能的历史数据,包括CPU、内存、磁盘和网络等,它也属于 sysstat 包。

常用选项:
-d:显示硬盘统计信息。1:每秒更新一次统计信息。
示例:
sar -d 1
这将每秒更新一次显示硬盘的I/O统计信息。
iotop 命令
iotop 是一个基于ncurses的IO监视工具,类似于 top 命令,但专注于显示实时的I/O使用情况,它需要以root或具有足够权限的用户身份运行。
常用选项:
-o:以I/O使用量进行排序。1:每秒更新一次统计信息。
示例:
sudo iotop
这将实时显示系统中各个进程的I/O使用情况,包括读写速率和I/O等待时间。

dstat 命令
dstat 是一个全能的系统资源监控工具,可以实时监控CPU、内存、磁盘I/O、网络I/O等。
常用选项:
-cd:显示CPU和磁盘统计信息。--disk-util:显示磁盘利用率。--disk-tps:显示每秒传输的磁盘事务数。
示例:
dstat -cd --disk-util --disk-tps 1
这将每秒更新一次显示CPU和磁盘的统计信息。
lsof 命令
lsof 用于列出当前系统打开的文件和进程,可以用来查看哪些进程正在访问某个文件或设备。
常用选项:
/dev/sda:查看正在访问/dev/sda设备的进程。
示例:

lsof /dev/sda
这将显示所有正在访问 /dev/sda 设备的进程及其I/O状态。
df 和 du 命令
虽然 df 和 du 主要用于查看磁盘空间使用情况,但它们也间接反映了I/O负载。
常用选项:
-h:以人类可读的方式显示输出。
示例:
df -h du -h /path/to/directory
df 显示文件系统的磁盘空间利用情况,而 du 显示特定目录的磁盘使用情况。
归纳表格
| 命令 | 功能描述 | 常用选项 |
|---|---|---|
iostat |
显示CPU、设备和分区的I/O统计信息 | -d, -x, -k, -m, -t |
vmstat |
显示虚拟内存、进程、CPU和I/O统计信息 | -d, 1 |
sar |
提供系统性能的历史数据,包括磁盘I/O | -d, 1 |
iotop |
实时显示系统中各个进程的I/O使用情况 | -o, 1 |
dstat |
实时监控CPU、内存、磁盘I/O、网络I/O等 | -cd, --disk-util, --disk-tps, 1 |
lsof |
列出当前系统打开的文件和进程,查看哪些进程正在访问某个文件或设备 | /dev/sda |
df |
显示文件系统的磁盘空间利用情况 | -h |
du |
显示特定目录的磁盘使用情况 | -h |
FAQs
Q1: 如何查看某个特定进程的I/O使用情况?
A1: 可以使用 iotop 命令,它会实时显示系统中各个进程的I/O使用情况,按下 o 键可以按照I/O使用率排序,找到特定进程的I/O使用情况。
Q2: 如何查看系统I/O的历史数据?
A2: 可以使用 sar 命令,它提供了系统性能的历史数据。sar -d 可以显示硬盘的I/O统计信息,并且可以通过指定时间间隔和次数来收集历史数据。
