使用 iostat 命令评估磁盘性能
在您的系统处于工作负载高峰时期或者运行一个关键应用程序用来最小化 I/O 延迟时,运行带一个时间间隔参数的 iostat 命令来开始评估。
以下 shell 脚本在后台运行 iostat 命令时,前台有一个大文件的副本在运行以便可以测量一些 I/O:
# iostat 5 3 >io.out &
# cp big1 /dev/nullAIX® 操作系统维护磁盘活动历史记录。 如果禁用了磁盘 I/O 历史记录,那么当您运行 iostat 命令时会显示以下消息:
以下示例显示必须考虑系统上的所有可用数据才能对问题进行故障诊断。Disk history since boot not available.
The interval disk I/O statistics are unaffected by this.要启用磁盘 I/O 历史记录,请从命令行输入 smit chgsys ,然后从 持续维护 DISK I/O 历史记录 字段中选择 true 。- 以下命令将三个数据样本存储在一个系统上,该系统在 io.out 文件中有三个磁盘。 在两次采样之间的时间间隔为 5 秒收集这些样本。
# iostat -T 5 3 > /tmp/io.out & # cp bigfile /dev/null System configuration: lcpu=4 drives=4 ent=1.00 paths=3 vdisks=2 tty: tin tout avg-cpu: % user % sys % idle % iowait physc % entc time 1.2 9.6 0.6 1.4 98.0 0.0 0.0 2.7 13:26:46 Disks: % tm_act Kbps tps Kb_read Kb_wrtn time cd0 0.0 0.0 0.0 0 0 13:26:46 hdisk1 0.0 0.0 0.0 0 0 13:26:46 hdisk0 0.0 0.0 0.0 0 0 13:26:46 hdisk2 0.0 0.0 0.0 0 0 13:26:46 tty: tin tout avg-cpu: % user % sys % idle % iowait physc % entc time 0.2 3.6 0.3 13.8 75.1 10.8 0.2 16.8 13:26:51 Disks: % tm_act Kbps tps Kb_read Kb_wrtn time cd0 0.0 0.0 0.0 0 0 13:26:51 hdisk1 0.0 0.0 0.0 0 0 13:26:51 hdisk0 62.8 52428.8 205.4 262144 0 13:26:51 hdisk2 0.0 0.0 0.0 0 0 13:26:51 tty: tin tout avg-cpu: % user % sys % idle % iowait physc % entc time 0.0 0.0 0.5 1.5 97.9 0.1 0.0 2.8 13:26:56 Disks: % tm_act Kbps tps Kb_read Kb_wrtn time cd0 0.0 0.0 0.0 0 0 13:26:56 hdisk1 0.0 0.0 0.0 0 0 13:26:56 hdisk0 0.4 0.8 0.2 0 4 13:26:56 hdisk2 2.6 33.6 7.8 0 168 13:26:56注: 如果在未指定时间间隔的情况下运行 iostat 命令,那么输出将指示自上次系统重新引导以来的系统数据摘要,而不是当前值。- 第一次和第三次间隔显示,这三个磁盘大多是空闲的,还有 CPU 利用率,这也表现为空闲在tty报告。
- 第二个时间间隔显示使用针对此测试启动的 cp 命令生成的活动。 可以在两个 CPU 活动上查看此活动 (tty报告) 显示13.9% sysCPU 以及磁盘报告上的 CPU。 在此时间间隔内, cp 命令需要 3.14 秒才能运行。 在报告中,第二个时间间隔显示 62.8 %hdisk0磁盘 (在 tm_act 度量下)。 此示例表示hdisk0磁盘忙碌了 62.8 % 的时间间隔 (5 秒)。 如果 cp 命令是生成对 hdisk0的磁盘 I/O 的唯一进程,那么 cp 命令花费了 5 秒时间间隔的 62.8% ,即 3.14 秒,这是 cp 命令运行所花费的总时间。
- 以下命令以 2 秒时间间隔存储系统上的五个数据样本,该系统在 io.out2 文件中有三个磁盘:
# iostat -T 2 5 > /tmp/io2.out & # cp bigfile /dev/null System configuration: lcpu=4 drives=4 ent=1.00 paths=3 vdisks=2 tty: tin tout avg-cpu: % user % sys % idle % iowait physc % entc time 3.0 24.0 0.4 0.8 98.8 0.0 0.0 1.8 13:29:51 Disks: % tm_act Kbps tps Kb_read Kb_wrtn time cd0 0.0 0.0 0.0 0 0 13:29:51 hdisk1 0.0 0.0 0.0 0 0 13:29:51 hdisk0 0.0 0.0 0.0 0 0 13:29:51 hdisk2 0.0 0.0 0.0 0 0 13:29:51 tty: tin tout avg-cpu: % user % sys % idle % iowait physc % entc time 0.5 1.0 0.2 8.2 85.5 6.1 0.1 10.1 13:29:53 Disks: % tm_act Kbps tps Kb_read Kb_wrtn time cd0 0.0 0.0 0.0 0 0 13:29:53 hdisk1 0.0 0.0 0.0 0 0 13:29:53 hdisk0 39.5 30464.0 120.5 60928 0 13:29:53 hdisk2 0.0 0.0 0.0 0 0 13:29:53 tty: tin tout avg-cpu: % user % sys % idle % iowait physc % entc time 0.0 0.0 0.2 21.5 62.9 15.4 0.3 25.7 13:29:55 Disks: % tm_act Kbps tps Kb_read Kb_wrtn time cd0 0.0 0.0 0.0 0 0 13:29:55 hdisk1 0.0 0.0 0.0 0 0 13:29:55 hdisk0 100.0 83712.0 327.0 167424 0 13:29:55 hdisk2 0.0 0.0 0.0 0 0 13:29:55 tty: tin tout avg-cpu: % user % sys % idle % iowait physc % entc time 0.0 8.0 1.3 7.2 87.5 4.0 0.1 10.4 13:29:57 Disks: % tm_act Kbps tps Kb_read Kb_wrtn time cd0 0.0 0.0 0.0 0 0 13:29:57 hdisk1 0.0 0.0 0.0 0 0 13:29:57 hdisk0 20.9 16898.0 66.5 33792 4 13:29:57 hdisk2 10.4 82.0 19.0 0 164 13:29:57 tty: tin tout avg-cpu: % user % sys % idle % iowait physc % entc time 0.0 0.0 0.2 0.6 99.2 0.0 0.0 1.3 13:29:59 Disks: % tm_act Kbps tps Kb_read Kb_wrtn time cd0 0.0 0.0 0.0 0 0 13:29:59 hdisk1 0.0 0.0 0.0 0 0 13:29:59 hdisk0 0.0 0.0 0.0 0 0 13:29:59 hdisk2 0.0 0.0 0.0 0 0 13:29:59
- 第一次和第五次间隔显示,这三个磁盘大多处于空闲状态,还有 CPU 利用率,这也表现为空闲在tty报告。
- 第二个时间间隔显示使用针对此测试启动的 cp 命令生成的活动。 在此时间间隔内, cp 命令需要 3.14 秒才能运行。 在报告中,第二个时间间隔显示 39.5 %hdisk0磁盘 (在 tm_act 度量下)。 在第三个和第四个区间中,分别显示 100% 和 20.9 %hdisk0磁盘 (在 tm_act 度量下)。 这意味着hdisk0在第三个时间间隔 (2 秒) 内的 100% 时间间隔内,磁盘处于忙碌状态。hdisk0在第四个时间间隔 (2 秒) 内,磁盘忙碌了 20.9 % 的时间间隔。