iostat查看磁盘IO

2024-02-29 19:28
文章标签 查看 io 磁盘 iostat

本文主要是介绍iostat查看磁盘IO,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、阈值
util应在10%以内(或者top命令查看,%wa很高而%us偏低时,可能存在IO瓶颈)
[root@k8s-master ~]# iostat -xkd 1
Linux 3.10.0-1160.108.1.el7.x86_64 (k8s-master) 	02/27/2024 	_x86_64_	(2 CPU)Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.19    3.07    7.30   172.03    72.21    47.10     0.01    0.64    1.03    0.48   0.31   0.32Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00    0.00    8.00     0.00    32.00     8.00     0.01    0.62    0.00    0.62   0.38   0.30Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00    0.00    9.00     0.00    36.00     8.00     0.00    0.22    0.00    0.22   0.11   0.10Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     8.00    0.00   35.00     0.00   292.50    16.71     0.04    1.14    0.00    1.14   0.23   0.80Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00   10.00   14.00   288.00    62.50    29.21     0.01    0.25    0.30    0.21   0.25   0.60
iostat 是 Linux 系统中用于监控系统输入输出设备负载情况的命令,-xkd 1 参数分别表示:
1. -x:显示扩展统计信息,包括设备利用率 %util 等。
2. -k:以 KB 为单位显示传输量。
3. -d:仅显示块设备统计信息(如磁盘)。
4. 1:后面跟的时间间隔参数,表示每隔 1 秒采集一次数据。
以下是您提供的 iostat 输出结果各字段的含义:
1. Device:设备名称,在这里为sda,即第一块 SCSI 或 SATA 磁盘设备。
2. rrqm/s:每秒读取请求合并次数(Read requests merged per second)。
3. wrqm/s:每秒写入请求合并次数(Write requests merged per second)。
4. r/s:每秒读取操作次数(Read operations per second)。
5. w/s:每秒写入操作次数(Write operations per second)。
6. rkB/s:每秒读取的数据量,单位KB(Read Kilobytes per second)。
7. wkB/s:每秒写入的数据量,单位KB(Write Kilobytes per second)。
8. avgrq-sz:平均每次IO请求的扇区数(Average Request Size)。
9. avgqu-sz:每个设备的平均等待队列长度(Average Queue Length)。
10. await:所有IO请求的平均服务时间,包括等待时间和处理时间(Average Time for I/O Operations to Complete)。
11. r_await:只针对读请求的平均服务时间。
12. w_await:只针对写请求的平均服务时间。
13. svctm:I/O 请求的服务时间(Service Time),即完成单个 I/O 请求所花费的时间。
14. %util:设备利用率,即一秒中有百分之多少的时间用于处理 I/O 请求。如果该值持续接近100%,则可能存在I/O瓶颈。

top - 18:20:56 up  4:35,  3 users,  load average: 0.38, 0.50, 0.46
Tasks: 268 total,   1 running, 267 sleeping,   0 stopped,   0 zombie
%Cpu(s):  4.4 us,  3.0 sy,  0.0 ni, 92.1 id,  0.0 wa,  0.0 hi,  0.5 si,  0.0 st
KiB Mem :  3861084 total,   182496 free,  1937152 used,  1741436 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  1614960 avail Mem PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                                          4048 root      20   0 1111868 322376  45340 S   6.3  8.3  14:29.45 kube-apiserver                                                                                                   976 root      20   0 1655316  83296  36640 S   3.3  2.2   8:40.70 kubelet                                                                                                          2337 root      20   0  825616  91600  32792 S   1.7  2.4   6:23.68 kube-controller                                                                                                  3705 root      20   0   10.7g  60492  15588 S   1.3  1.6   4:15.50 etcd                                                                                                             5788 root      20   0 1672716  44036  22024 S   1.3  1.1   3:49.83 calico-node                                                                                                      1158 root      20   0 1905868  89692  27864 S   1.0  2.3   3:27.24 dockerd                                                                                                          2865 root      20   0 3545624 234616  81236 S   1.0  6.1   2:42.34 gnome-shell                                                                                                      3039 root       9 -11 1285548   9644   4664 S   1.0  0.2   0:08.30 pulseaudio                                                                                                       4539 root      20   0  720048  10624   4224 S   0.7  0.3   0:03.45 containerd-shim                                                                                                  299 root      20   0       0      0      0 S   0.3  0.0   0:11.10 xfsaild/sda3                                                                                                     3675 root      20   0  754540  38892  18576 S   0.3  1.0   0:48.20 kube-scheduler                                                                                                   5220 polkitd   20   0 1125568  32332  16188 S   0.3  0.8   0:04.38 kube-controller                                                                                                  5237 root      20   0  750568  32308  15192 S   0.3  0.8   0:19.05 coredns                                                                                                          23628 root      20   0  694172  33548  19204 S   0.3  0.9   0:24.84 gnome-terminal-                                                                                                  
119975 root      20   0  164328   2476   1612 R   0.3  0.1   0:00.06 top                                                                                                              1 root      20   0  128760   7496   4256 S   0.0  0.2   0:23.25 systemd                                                                                                          2 root      20   0       0      0      0 S   0.0  0.0   0:00.01 kthreadd                                                                                                         4 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H                                                                                                     6 root      20   0       0      0      0 S   0.0  0.0   0:05.76 ksoftirqd/0                                                                                                      7 root      rt   0       0      0      0 S   0.0  0.0   0:00.40 migration/0                                                                                                      8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh                                                                                                           9 root      20   0       0      0      0 S   0.0  0.0   0:23.25 rcu_sched                                                                                                        10 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 lru-add-drain                                                                                                    11 root      rt   0       0      0      0 S   0.0  0.0   0:00.10 watchdog/0                                                                                                       12 root      rt   0       0      0      0 S   0.0  0.0   0:00.09 watchdog/1                                                                                                       13 root      rt   0       0      0      0 S   0.0  0.0   0:00.38 migration/1                                                                                                      14 root      20   0       0      0      0 S   0.0  0.0   0:05.73 ksoftirqd/1                                                                                                      16 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/1:0H                                                                                                     18 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kdevtmpfs                                                                                                        19 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 netns                                                                                                            20 root      20   0       0      0      0 S   0.0  0.0   0:00.01 khungtaskd                                                                                                       21 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 writeback                                                                                                        22 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kintegrityd                                                                                                      23 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 bioset    

top命令详细解释

top:是一个基于终端的实时进程查看器命令,可以用来查看系统进程的信息,包括进程的PID、CPU使用率、内存使用情况等,还可以进行一些操作,如发送信号、调整优先级等。
05:49:19:表示当前系统时间,格式为hh:mm:ss。
up 1:35:表示系统已经运行了1小时35分钟,即系统的运行时间。
3 users:表示当前登录系统的用户数量。
load average: 0.10, 0.06, 0.06:分别表示系统的平均负载,过去1分钟、5分钟、15分钟内的平均负载。
Tasks: 222 total, 1 running, 221 sleeping, 0 stopped, 0 zombie:表示当前系统中所有进程的情况,其中:
total:所有进程的数量。running:正在运行的进程数量。sleeping:休眠状态的进程数量。stopped:已停止的进程数量。zombie:僵尸进程的数量。
%Cpu(s): 0.2 us, 0.0 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st:表示CPU的使用情况,其中:
us:用户态CPU时间占用百分比。sy:内核态CPU时间占用百分比。ni:优先级较高的进程CPU时间占用百分比。id:CPU空闲时间占用百分比。wa:等待I/O数据的CPU时间占用百分比。hi:硬件中断时间占用百分比。si:软件中断CPU时间占用百分比。st:使用虚拟化技术的情况下,用于处理其他虚拟机需要的CPU时间占用百分比。
KiB Mem : 1863252 total, 98244 free, 1133500 used, 631508 buff/cache:表示内存使用情况,其中:
total:内存总量。free:空闲内存量。used:已使用内存量。buff/cache:Buffer和Cache占用的内存量
KiB Swap: 2097148 total, 2094836 free, 2312 used. 438260 avail Mem:表示交换空间使用情况,其中:
total:交换空间总量。free:空闲交换空间大小。used:已使用交换空间大小。avail Mem:可用内存大小

让我们逐个解释每个字段:
PID(进程ID): 每个正在运行的进程都有一个唯一的进程ID,用来标识进程。可以通过该ID来查找和操作进程。
USER(用户): 运行该进程的用户。
PR(优先级): 进程的优先级。可以是一个静态值(3-20)或一个动态值(即一个负数)。
NI(Nice值): 进程的Nice值,用于调整进程调度的优先级。较高的Nice值表示较低的优先级。
VIRT(虚拟内存): 进程使用的虚拟内存大小,包括所有分配给进程的虚拟内存区域的大小。
RES(常驻内存): 进程使用的物理内存大小,即常驻内存区域的大小。
SHR(共享内存): 进程使用的共享内存大小,即多个进程共享的内存区域的大小。
S(状态): 进程的状态。常见的状态包括:R(运行)、S(睡眠)、Z(僵尸)、D(不可中断的睡眠)等。
%CPU%MEM: 进程的CPU和内存使用率。
TIME+(运行时间): 进程已经运行的时间。
COMMAND(命令): 运行的命令或脚本的名称。
  • 命令:
top

  • 作用:实时查看系统运行情况和健康状态。
  • 命令与参数:

命令名

更新时间间隔(秒)

不显示任何闲置或者僵死进程

通过进程id监控单一进程

top

-d 间隔秒数

-i

-p 进程id

  • 操作控制:

按键

功能

P

默认值,根据CPU使用率排序

M

以内存的使用率排序

N

以PID排序

d

设置数据刷新的时间间隔,单位是秒

q

退出

  • 示例:指定间隔秒数,默认为 3 秒

top -d 2

  • 示例:不显示僵尸进程

top -i

  • 示例:监控单一线程

top -p 1189

  • 示例:操作控制

  • 示例:查询结果字段解释

  • 第一行信息为任务队列信息:

内容举例

说明

14:12:01

系统当前时间

up 6:04

系统的运行时间,前面例子表示本机已经运行6小时4分钟

2 users

当前登录了2个用户

load average:0.00, 0.02, 0.05

系统在之前1分钟,5分钟,15分钟的平均负载。 一般认为小于1时,负载较小。如果大于1,系统已经超出负荷。

  • 第二行为进程信息:

内容举例

说明

Tasks: 210 total

系统中的进程总数

1 running

正在运行的进程数

209 sleeping

睡眠的进程

0 stopped

正在停止的进程

0 zombie

僵尸进程。如果不是0,需要手工检查僵尸进程

  • 第三行为 CPU 信息:

内容举例

说明

Cpu(s):3.0%us

用户空间占用的CPU百分比,us对应user

3.0%sy

内核空间占用的CPU百分比,sy对应system

0.0%ni

改变过优先级的进程占用的CPU百分比,ni对应niced

93.9%id

空闲CPU的CPU百分比

0.1%wa

等待输入/输出的进程的占用CPU百分比,wa对应IO wait

0.0%hi

硬中断请求服务占用的CPU百分比,hi对应hardware IRQ

0.0%si

软中断请求服务占用的CPU百分比,si对应software IRQ

0.0%st

st(Steal time)虚拟时间百分比,也叫被hypervisor偷走的时间。 就是当有虚拟机时,虚拟CPU等待实际CPU的时间百分比。

  • 第四行为物理内存信息:

内容举例

说明

3861295 total

物理内存的总量,单位KB

1037800 free

空闲的物理内存数量

943564 used

已经使用的物理内存数量

1879928 buff/cache

作为缓冲的内存数量

  • 使用中的内存总量(used)指的是现在系统内核控制的内存数,空闲内存总量(free)是还未纳入内核管控范围的数量。
  • 纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存还给 free ,因此 Linux 系统运行过程中 free 内存会越来越少,但不影响系统运行。因为这表示更多的空闲内存被内核管理了。

  • 第五行为交换分区(swap)信息:

内容举例

说明

3145724 total

交换分区(虚拟内存)的总大小

3145724 free

空闲交换分区的大小

0 used

已经使用的交互分区的大小

2649008 avail Mem

在不交换的情况下,对启动新应用程序可用内存的估计

交换分区是一个非常值得关注的地方,如果 swap 区的 used 数值持续发生变化那么说明在内核和交换分区之间正在持续发生数据交换,这表示内存不够用了——必须不断把内存中的数据保存到硬盘上。

这篇关于iostat查看磁盘IO的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/759815

相关文章

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

flume系列之:查看flume系统日志、查看统计flume日志类型、查看flume日志

遍历指定目录下多个文件查找指定内容 服务器系统日志会记录flume相关日志 cat /var/log/messages |grep -i oom 查找系统日志中关于flume的指定日志 import osdef search_string_in_files(directory, search_string):count = 0

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

Java IO 操作——个人理解

之前一直Java的IO操作一知半解。今天看到一个便文章觉得很有道理( 原文章),记录一下。 首先,理解Java的IO操作到底操作的什么内容,过程又是怎么样子。          数据来源的操作: 来源有文件,网络数据。使用File类和Sockets等。这里操作的是数据本身,1,0结构。    File file = new File("path");   字

springboot体会BIO(阻塞式IO)

使用springboot体会阻塞式IO 大致的思路为: 创建一个socket服务端,监听socket通道,并打印出socket通道中的内容。 创建两个socket客户端,向socket服务端写入消息。 1.创建服务端 public class RedisServer {public static void main(String[] args) throws IOException {

Java基础回顾系列-第七天-高级编程之IO

Java基础回顾系列-第七天-高级编程之IO 文件操作字节流与字符流OutputStream字节输出流FileOutputStream InputStream字节输入流FileInputStream Writer字符输出流FileWriter Reader字符输入流字节流与字符流的区别转换流InputStreamReaderOutputStreamWriter 文件复制 字符编码内存操作流(

Linux命令(11):系统信息查看命令

系统 # uname -a # 查看内核/操作系统/CPU信息# head -n 1 /etc/issue # 查看操作系统版本# cat /proc/cpuinfo # 查看CPU信息# hostname # 查看计算机名# lspci -tv # 列出所有PCI设备# lsusb -tv

Linux 安全弹出外接磁盘

命令行操作 首先,需要卸载硬盘上的所有分区,可以使用umount来卸载分区 清空系统缓存,将所有的数据写入磁盘 sync 列出已挂载的文件系统 使用lsblk或者df命令来查找要卸载的分区 lsblk or df -h 确保没有文件正在使用 使用lsof 命令来检查 sudo lsof |grep /dev/sdc 卸载分区 假设硬盘的分区是 /dev/sdc1,使用u

android java.io.IOException: open failed: ENOENT (No such file or directory)-api23+权限受权

问题描述 在安卓上,清单明明已经受权了读写文件权限,但偏偏就是创建不了目录和文件 调用mkdirs()总是返回false. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.READ_E

JavaEE-文件操作与IO

目录 1,两种路径 二,两种文件 三,文件的操作/File类: 1)文件系统操作 File类 2)文件内容操作(读文件,写文件) (1)打开文件 (2)关闭文件 (3)读文件/InputStream (4)写文件/OutputStream (5)读文件/reader (6)写文件/writer (7)Scanner 四,练习: 1,两种路径 1)绝对路径