linux commands
ls
iostat
iostat
是一个用于监控系统输入/输出设备负载情况的工具,它可以用来收集并显示系统的存储输入/输出统计信息。这可以帮助你识别磁盘 I/O 子系统的性能瓶颈。以下是一些基本的 iostat
命令和它们的用法:
显示所有设备的统计信息
你可以使用
iostat
命令而不带任何参数来显示所有设备的统计信息。这将显示自系统启动以来的统计信息。1
iostat
定期更新统计信息
你可以通过在
iostat
命令后添加一个时间间隔(以秒为单位)来定期更新统计信息。例如,以下命令每 2 秒更新一次统计信息:1
iostat 2
显示特定设备的统计信息
你可以在
iostat
命令后添加设备名称来显示特定设备的统计信息。例如,以下命令显示设备/dev/sda
的统计信息:1
iostat /dev/sda
显示扩展统计信息
你可以使用
-x
选项来显示扩展统计信息。这将包括更多的详细信息,如设备的利用率(%util
),每秒读/写次数(r/s
和w/s
),每次读/写的扇区数(rsec/s
和wsec/s
),等等。1
iostat -x
显示 CPU 统计信息
你可以使用
-c
选项来显示 CPU 的统计信息。这将包括 CPU 的使用率,用户时间,系统时间,等等。1
iostat -c
请注意,iostat
的具体用法可能会因系统和版本的不同而略有差异。你可以通过 man iostat
命令查看你的系统上 iostat
的完整文档和所有可用选项。
iotop
iotop
是一个用于监控磁盘 I/O 使用情况的命令行工具,它可以帮助你找出哪些进程/线程正在使用磁盘I/O。iotop
的输出类似于 top
命令的输出,但是它按照每个进程的 I/O 使用量进行排序。
要运行 iotop
,你需要 root 权限。你可以使用下面的命令来启动 iotop
:
1
sudo iotop
下面是 iotop
输出的一个例子:
1
2
3
4
5
Total DISK READ : 0.00 B/s | Total DISK WRITE : 0.00 B/s
Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 0.00 B/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
1030 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [jbd2/sda1-8]
1054 be/3 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/0:1]
下面是每列的含义:
- TID:线程的标识符。
- PRIO:I/O 优先级(
be
表示 “best effort”,rt
表示 “real time”)。 - USER:运行进程的用户名称。
- DISK READ/DISK WRITE:进程读取/写入的数据量。
- SWAPIN:该进程是否正在从 swap 读取数据(即,是否正在发生 “swap in”)。
- IO>:这个进程正在等待 I/O 的百分比。
- COMMAND:进程正在运行的命令。
你可以使用 -o
选项来只显示那些正在进行 I/O 操作的进程,或者使用 -b
选项来在批处理模式下运行 iotop
(这在脚本中很有用)。你可以使用 man iotop
命令来查看更多的选项和信息。