ubuntu1204u盘安装 (ubuntu1604系统安装)

大多数时候,服务器性能在硬盘上很高 I/O 读写降低了性能。假如它很高或波动,很可能是它造成的。因此,我们需要检查硬盘上的硬盘 I/O 活动。

-- Magesh Maruthamuthu

你知道在 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



如果你真的想检查这个过程 I/O,那么运行 iotop 命令加上 -o 或者 --only 参数。

# iotop --only



细节:

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

对于基于 Arch Linux 系统,使用 Pacman Command 来安装 sysstat。

$ sudo pacman -S sysstat

对于 RHEL/CentOS 系统,使用 YUM Command 来安装 sysstat。

$ sudo yum install sysstat

对于 openSUSE Leap 系统,使用 Zypper Command 来安装 sysstat。

$ sudo zypper install sysstat

在 Linux 中如何使用 sysstat 命令监控磁盘 I/O 活动/统计?

在 iostat 命令中有很多参数来检查关于 I/O 和 CPU 变更统计信息。

无参数操作 iostat 命令将看到完整的系统统计。

# iostat

Linux 4.19.32-1-MANJARO (daygeek-Y700) Thursday 18 April 2019 _x86_64_ (8 CPU)

avg-cpu: %user %nice %system %iowait %steal %idle

29.45 0.02 16.47 0.12 0.00 53.94

Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd

nvme0n1 6.68 126.95 124.97 0.00 58420014 57507206 0

sda 0.18 6.77 80.24 0.00 3115036 36924764 0

loop0 0.00 0.00 0.00 0.00 2160 0 0

loop1 0.00 0.00 0.00 0.00 1093 0 0

loop2 0.00 0.00 0.00 0.00 1077 0 0

运行 iostat 命令加上 -d 查看所有设备的参数 I/O 统计。

# iostat -d

Linux 4.19.32-1-MANJARO (daygeek-Y700) Thursday 18 April 2019 _x86_64_ (8 CPU)

Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd

nvme0n1 6.68 126.95 124.97 0.00 58420030 57509090 0

sda 0.18 6.77 80.24 0.00 3115292 36924764 0

loop0 0.00 0.00 0.00 0.00 2160 0 0

loop1 0.00 0.00 0.00 0.00 1093 0 0

loop2 0.00 0.00 0.00 0.00 1077 0 0

运行 iostat 命令加上 -p 查看所有设备和分区的参数 I/O 统计。

# iostat -p

Linux 4.19.32-1-MANJARO (daygeek-Y700) Thursday 18 April 2019 _x86_64_ (8 CPU)

avg-cpu: %user %nice %system %iowait %steal %idle

29.42 0.02 16.45 0.12 0.00 53.99

Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd

nvme0n1 6.68 126.94 124.96 0.00 58420062 57512278 0

nvme0n1p1 6.40 124.46 118.36 0.00 57279753 54474898 0

nvme0n1p2 0.27 2.47 6.60 0.00 1138069 3037380 0

sda 0.18 6.77 80.23 0.00 3116060 36924764 0

sda1 0.00 0.01 0.00 0.00 3224 0 0

sda2 0.18 6.76 80.23 0.00 3111508 36924764 0

loop0 0.00 0.00 0.00 0.00 2160 0 0

loop1 0.00 0.00 0.00 0.00 1093 0 0

loop2 0.00 0.00 0.00 0.00 1077 0 0

运行 iostat 命令加上 -x 参数显示所有设备的详细信息 I/O 统计信息。

# iostat -x

Linux 4.19.32-1-MANJARO (daygeek-Y700) Thursday 18 April 2019 _x86_64_ (8 CPU)

avg-cpu: %user %nice %system %iowait %steal %idle

29.41 0.02 16.45 0.12 0.00 54.00

Device r/s rkB/s rrqm/s %rrqm r_await rareq-sz w/s wkB/s wrqm/s %wrqm w_await wareq-sz d/s dkB/s drqm/s %drqm d_await dareq-sz aqu-sz %util

nvme0n1 2.45 126.93 0.60 19.74 0.40 51.74 4.23 124.96 5.12 54.76 3.16 29.54 0.00 0.00 0.00 0.00 0.00 0.00 0.31 30.28

sda 0.06 6.77 0.00 0.00 8.34 119.20 0.12 80.23 19.94 99.40 31.8 4