你知道在 Linux 中我们使用什么工具检修和监控实时的磁盘活动吗?如果 Linux 系统性能变慢,我们会用 top 命令 来查看系统性能。它被用来检查是什么进程在服务器上占有如此高的使用率,对于大多数 Linux 系统管理员来说很常见,现实世界中被 Linux 系统管理员广泛采用。
如果在进程输出中你没有看到很大的不同,你仍然有选择查看其他东西。我会建议你在 top 输出中检查 wa 状态,因为大多数时间里服务器性能由于在硬盘上的高 I/O 读和写降低了性能。如果它很高或者波动,很可能就是它造成的。因此,我们需要检查硬盘上的 I/O 活动。
我们可以在 Linux 中使用 iotop 和 iostat 命令监控所有的磁盘和文件系统的磁盘 I/O 统计。
什么是 iotop?
iotop 是一个类似 top 的工具,用来显示实时的磁盘活动。
iotop 监控 Linux 内核输出的 I/O 使用信息,并且显示一个系统中进程或线程的当前 I/O 使用情况。
它显示每个进程/线程读写 I/O 带宽。它同样显示当等待换入和等待 I/O 的线程/进程花费的时间的百分比。
Total DISK READ 和 Total DISK WRITE 的值一方面表示了进程和内核线程之间的总的读写带宽,另一方面也表示内核块设备子系统的。
Actual DISK READ 和 Actual DISK WRITE 的值表示在内核块设备子系统和下面硬件(HDD、SSD 等等)对应的实际磁盘 I/O 带宽。
如何在 Linux 中安装 iotop ?
我们可以轻松在包管理器的帮助下安装,因为该软件包在所有的 Linux 发行版仓库中都可以获得。
对于 Fedora 系统,使用 DNF 命令 来安装 iotop 。
$ sudo dnf install iotop
对于 Debian/Ubuntu 系统,使用 API-GET 命令 或者 APT 命令 来安装 iotop 。
$ sudo apt install iotop
对于基于 Arch Linux 的系统,使用 Pacman Command 来安装 iotop 。
$ sudo pacman -S iotop
对于 RHEL/CentOS 的系统,使用 YUM Command 来安装 iotop 。
$ sudo yum install iotop
对于使用 openSUSE Leap 的系统,使用 Zypper Command 来安装 iotop 。
$ sudo zypper install iotop
在 Linux 中如何使用 iotop 命令来监控磁盘 I/O 活动/统计?
iotop 命令有很多参数来检查关于磁盘 I/O 的变化:
# iotop
10
如果你想检查那个进程实际在做 I/O,那么运行 iotop 命令加上 -o 或者 --only 参数。
# iotop --only
11
细节:
IO :它显示每个进程的 I/O 利用率,包含磁盘和交换。
SWAPIN : 它只显示每个进程的交换使用率。
什么是 iostat?
iostat 被用来报告中央处理单元(CPU)的统计和设备与分区的输出/输出的统计。
iostat 命令通过观察与它们平均传输率相关的设备活跃时间来监控系统输入/输出设备负载。
iostat 命令生成的报告可以被用来改变系统配置来更好的平衡物理磁盘之间的输入/输出负载。
所有的统计都在 iostat 命令每次运行时被报告。该报告包含一个 CPU 头部,后面是一行 CPU 统计。
在多处理器系统中,CPU 统计被计算为系统层面的所有处理器的平均值。设备头行后紧跟显示每个配置的设备一行的统计。
iostat 命令生成两种类型的报告,CPU 利用率报告和设备利用率报告。
在 Linux 中怎样安装 iostat?
iostat 工具是 sysstat 包的一部分,所以我们可以轻松地在包管理器地帮助下安装,因为在所有的 Linux 发行版的仓库都是可以获得的。
对于 Fedora 系统,使用 DNF Command 来安装 sysstat 。
$ sudo dnf install sysstat
对于 Debian/Ubuntu 系统,使用 APT-GET Command 或者 APT Command 来安装 sysstat 。
$ sudo apt install sysstat
(编辑:ASP站长网)
|