Linux操作文档——系统监控

系统监控


一、proc文件系统基本概念

1、基本概念

1、作用:内核部件可以通过该文件系统向用户空间提供接口来提供查询信息、修改软件行为,因而它是一种比较重要的特殊文件系统。
2、proc文件系统就是一个文件系统,它可以挂载在目录树的任意位置,不过通常挂载在/proc下,它大致包含了如下信息:内存管理、每个进程的相关信息、文件系统、设备驱动程序、系统总线、电源管理、终端、系统控制参数、网络。主机上的各个进程都是以目录的形态存在于/proc当中。

[root@localhost ~]# ll /proc/1              //systemd进程
总用量 0
dr-xr-xr-x. 2 root root 0 5月  14 19:22 attr
-rw-r--r--. 1 root root 0 5月  14 19:22 autogroup
-r--------. 1 root root 0 5月  14 19:22 auxv
-r--r--r--. 1 root root 0 5月  14 19:10 cgroup
--w-------. 1 root root 0 5月  14 19:22 clear_refs
-r--r--r--. 1 root root 0 5月  14 19:03 cmdline              //进程启动命令
-rw-r--r--. 1 root root 0 5月  14 19:10 comm
-rw-r--r--. 1 root root 0 5月  14 19:22 coredump_filter
-r--r--r--. 1 root root 0 5月  14 19:22 cpuset
lrwxrwxrwx. 1 root root 0 5月  14 19:22 cwd -> /
-r--------. 1 root root 0 5月  14 19:10 environ              //环境变量内容
lrwxrwxrwx. 1 root root 0 5月  14 19:10 exe -> /usr/lib/systemd/systemd
dr-x------. 2 root root 0 5月  14 19:22 fd
dr-x------. 2 root root 0 5月  14 19:22 fdinfo
-rw-r--r--. 1 root root 0 5月  14 19:22 gid_map
-r--------. 1 root root 0 5月  14 19:22 io
-r--r--r--. 1 root root 0 5月  14 19:22 limits
-rw-r--r--. 1 root root 0 5月  14 19:10 loginuid
dr-x------. 2 root root 0 5月  14 19:22 map_files
-r--r--r--. 1 root root 0 5月  14 19:22 maps
-rw-------. 1 root root 0 5月  14 19:22 mem
-r--r--r--. 1 root root 0 5月  14 19:03 mountinfo
-r--r--r--. 1 root root 0 5月  14 19:22 mounts
-r--------. 1 root root 0 5月  14 19:22 mountstats
dr-xr-xr-x. 6 root root 0 5月  14 19:22 net
dr-x--x--x. 2 root root 0 5月  14 19:22 ns
-r--r--r--. 1 root root 0 5月  14 19:22 numa_maps
-rw-r--r--. 1 root root 0 5月  14 19:22 oom_adj
-r--r--r--. 1 root root 0 5月  14 19:22 oom_score
-rw-r--r--. 1 root root 0 5月  14 19:22 oom_score_adj
-r--r--r--. 1 root root 0 5月  14 19:22 pagemap
-r--------. 1 root root 0 5月  14 19:22 patch_state
-r--r--r--. 1 root root 0 5月  14 19:22 personality
-rw-r--r--. 1 root root 0 5月  14 19:22 projid_map
lrwxrwxrwx. 1 root root 0 5月  14 19:11 root -> /
-rw-r--r--. 1 root root 0 5月  14 19:22 sched
-r--r--r--. 1 root root 0 5月  14 19:22 schedstat
-r--r--r--. 1 root root 0 5月  14 19:10 sessionid
-rw-r--r--. 1 root root 0 5月  14 19:22 setgroups
-r--r--r--. 1 root root 0 5月  14 19:22 smaps
-r--r--r--. 1 root root 0 5月  14 19:22 stack
-r--r--r--. 1 root root 0 5月  14 19:22 stat
-r--r--r--. 1 root root 0 5月  14 19:22 statm
-r--r--r--. 1 root root 0 5月  14 19:03 status
-r--r--r--. 1 root root 0 5月  14 19:22 syscall
dr-xr-xr-x. 3 root root 0 5月  14 19:10 task
-r--r--r--. 1 root root 0 5月  14 19:22 timers
-rw-r--r--. 1 root root 0 5月  14 19:22 uid_map
-r--r--r--. 1 root root 0 5月  14 19:22 wchan
[root@localhost ~]# cat /proc/1/cmdline
/usr/lib/systemd/systemd--switched-root--system--deserialize22

2、相关参数

1、加载kernel时的相关指令与参数

[root@localhost ~]# cat /proc/cmdline 

2、CPU相关信息,包含频率、类型与运算功能

[root@localhost ~]# cat /proc/cpuinfo 

3、系统各个主要设备的主设备号码

[root@localhost ~]# cat /proc/devices

4、记录系统加载的文件系统

[root@localhost ~]# cat /proc/filesystems

5、平均负载值

[root@localhost ~]# cat /proc/loadavg              //同top命令

6、内存信息

[root@localhost ~]# cat /proc/meminfo              //同free命令

7、系统已经加载的模块

[root@localhost ~]# cat /proc/modules           

8、系统已经挂载的数据

[root@localhost ~]# cat /proc/mounts              //同mount命令

9、系统的分区文件

[root@localhost ~]# cat /proc/partitions

10、系统的核心版本

[root@localhost ~]# cat /proc/version              //同uname -a命令

二、监控常用命令及工具

1、常用命令

1、系统共运行了多长时间和系统的平均负载

[root@localhost ~]# uptime
 19:04:44 up 1 min,  2 users,  load average: 1.39, 0.42, 0.14

2、显示当前系统未使用的和已使用的内存数目

[root@localhost ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           1.8G        739M         74M         21M        1.0G        886M
Swap:          2.0G        2.8M        2.0G

2、vmstat命令

1、参数解释

参数 解释
-V 显示vmstat版本信息
-n 只在开始时显示一次各字段名称
-a 显示活跃和非活跃内存
-d 显示各个磁盘相关统计信息
-D 显示磁盘总体信息
-p 显示指定磁盘分区统计信息
-s 显示内存相关统计信息及多种系统活动数量
-m 显示slabinfo
-t 在输出信息的时候也将时间一并输出出来
-S 使用指定单位显示。参数有k(1000)、K(1024)、m(1000000)、M(1048576)字节
delay 刷新时间间隔。如果不指定,只显示一条结果
count 刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷
2、显示虚拟内存状态
[root@localhost ~]# vmstat 
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 130820   2116 924500    0    0  2481   421  677 1199 10 13 77  0  0
字段 说明
procs r 表示运行和等待CPU时间片的进程数,这个值如果长期大于系统CPU个数,说明CPU不足,需要增加CPU
b 表示在等待资源的进程数
memory swpd 表示切换到内存交换区的内存大小,即虚拟内存已使用的大小(单位KB)
free 表示当前空闲的物理内存
buff 表示buffers cached内存大小,也就是缓冲大小
Cache 表示page cached的内存大小,也就是缓存大小
swap si 表示从磁盘调入内存,也就是内存进入内存交换区的内存大小
so 表示由内存进入磁盘,也就是由内存交换区进入内存的内存大小。
注意 一般情况下si、so的值都为0,如果si、so的值长期不为0,则说明系统内存不足,需要增加系统内存
io bi 表示从块设备每秒读取的块数量
bo 表示每秒写到块设备的块数量
注意 如果bi+bo的值过大,且wa值较大,则表示系统磁盘IO瓶颈
system in 表示每秒的中断数,包括时钟
cs 表示每秒产生的上下文切换次数
注意 这两个值越大,则由内核消耗的CPU就越多
CPU us 表示用户进程消耗的CPU时间百分比,us值越高,说明用户进程消耗CPU时间越多,如果长期大于50%,则需要考虑优化程序或者算法
sy 表示系统内核进程消耗的CPU时间百分比,一般来说us+sy应该小于80%,如果大于80%,说明可能存在CPU瓶颈
id 表示CPU处在空间状态的时间百分比
wa 表示IP等待所占用的CPU时间百分比,wa值越高,说明I/O等待越严重,根据经验wa的参考值为20%,如果超过20%,说明I/O等待严重
第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数,即每隔2秒采样一次,一共采样两次
[root@localhost ~]# vmstat -SM 2 2
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      2    134      0   1009    0    0   982   781  542  675  5  6 89  0  0
 0  0      2    134      0   1009    0    0     0     0  453  729  1  1 98  0  0

3、mpstat命令

可以查看多核心cpu中每个计算核心的统计数据

[root@localhost ~]# yum -y install sysstat

每2秒查看一次,共查看5次

[root@localhost ~]# mpstat 2 5          
Linux 3.10.0-1062.18.1.el7.x86_64 (localhost.localdomain) 	2020年05月14日 _x86_64_	(2 CPU)

19时12分26秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
19时12分28秒  all    0.00    0.00    0.50    0.00    0.00    0.00    0.00    0.00    0.00   99.50
19时12分30秒  all    0.00    0.00    0.50    0.00    0.00    0.00    0.00    0.00    0.00   99.50
19时12分32秒  all    0.25    0.00    0.50    0.00    0.00    0.00    0.00    0.00    0.00   99.25
19时12分34秒  all    0.25    0.00    0.25    0.00    0.00    0.00    0.00    0.00    0.00   99.50
19时12分36秒  all    0.00    0.00    0.50    0.00    0.00    0.00    0.00    0.00    0.00   99.50
平均时间:  all    0.10    0.00    0.45    0.00    0.00    0.00    0.00    0.00    0.00   99.45

查看每个cpu核心的详细当前运行状况信息

[root@localhost ~]# mpstat -P ALL 2 3
Linux 3.10.0-1062.18.1.el7.x86_64 (localhost.localdomain) 	2020年05月14日 _x86_64_	(2 CPU)

19时13分41秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
19时13分43秒  all    0.25    0.00    0.76    0.00    0.00    0.25    0.00    0.00    0.00   98.74
19时13分43秒    0    0.50    0.00    1.01    0.00    0.00    0.00    0.00    0.00    0.00   98.49
19时13分43秒    1    0.00    0.00    0.51    0.00    0.00    0.00    0.00    0.00    0.00   99.49

19时13分43秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
19时13分45秒  all    0.25    0.00    0.50    0.00    0.00    0.00    0.00    0.00    0.00   99.25
19时13分45秒    0    0.00    0.00    0.50    0.00    0.00    0.00    0.00    0.00    0.00   99.50
19时13分45秒    1    0.50    0.00    0.50    0.00    0.00    0.00    0.00    0.00    0.00   99.00

19时13分45秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
19时13分47秒  all    0.25    0.00    0.25    0.00    0.00    0.00    0.00    0.00    0.00   99.50
19时13分47秒    0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
19时13分47秒    1    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

平均时间:  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
平均时间:  all    0.25    0.00    0.50    0.00    0.00    0.08    0.00    0.00    0.00   99.16
平均时间:    0    0.17    0.00    0.50    0.00    0.00    0.00    0.00    0.00    0.00   99.33
平均时间:    1    0.17    0.00    0.34    0.00    0.00    0.00    0.00    0.00    0.00   99.50
参数 说明
%user 在internal时间段里,用户的CPU时间(%),不包含nice值为负进程 (usr/total)*100
%nice 在internal时间段里,nice值为负进程的CPU时间(%)(nice/total)*100
%sys 在internal时间段里,内核时间(%) (system/total)*100
%iowait 在internal时间段里,硬盘IO等待时间(%) (iowait/total)*100
%irq 在internal时间段里,硬中断时间(%) (irq/total)*100
%soft 在internal时间段里,软中断时间(%) (softirq/total)*100
%idle 在internal时间段里,CPU除去等待磁盘IO操作外的因为任何原因而空闲的时间闲置时间(%) (idle/total)*100

4、iostat命令

监视系统输入输出设备和CPU的使用情况

[root@localhost ~]# iostat 
Linux 3.10.0-1062.18.1.el7.x86_64 (localhost.localdomain) 	2020年05月14日 _x86_64_	(2 CPU)              //系统信息和监测时间

avg-cpu:  %user   %nice %system %iowait  %steal   %idle              //CPU使用情况
           2.20    1.54    4.33    0.10    0.00   91.83

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              34.40      1457.73      1081.36    1007526     747392
dm-0             32.34      1430.65      1055.17     988806     729294
dm-1              1.02         3.24         3.51       2236       2424
选项 说明 选项 说明
-c 仅显示CPU使用情况 -d 仅显示设备利用率
-k 显示状态以千字节每秒为单位,而不使用块每秒 -m 显示状态以兆字节每秒为单位
-p 仅显示块设备和所有被使用的其他分区的状态 -t 显示每个报告产生时的时间
-V 显示版号并退出 -x 显示扩展状态
参数 说明
tps 该设备每秒的传输次数
kB_read/s 每秒从设备(drive expressed)读取的数据量
kB_wrtn/s 每秒向设备(drive expressed)写入的数据量
kB_read 读取的总数据量
kB_wrtn 写入的总数量数据量
标识 说明 标识 说明
Device 监测设备名称 rrqm/s 每秒需要读取需求的数量
wrqm/s 每秒需要写入需求的数量 r/s 每秒实际读取需求的数量
w/s 每秒实际写入需求的数量 rsec/s 每秒读取区段的数量
wsec/s 每秒写入区段的数量 rkB/s 每秒实际读取的大小,单位为KB
wkB/s 每秒实际写入的大小,单位为KB avgrq-sz 需求的平均大小区段
avgqu-sz 需求的平均队列长度 await 等待I/O平均的时间(milliseconds)
svctm I/O需求完成的平均时间 %util 被I/O需求消耗的CPU百分比

5、sar命令

sar命令常用格式:sar [options] [-A] [-o file] t [n],其中:
t为采样间隔,n为采样次数,默认值是1;
-o file表示将命令结果以二进制格式存放在文件中,file 是文件名。
options 为命令行选项

常用选项 说明 常用选项 说明
-A 所有报告的总和 -u 输出CPU使用情况的统计信息
-v 输出inode、文件和其他内核表的统计信息 -d 输出每一个块设备的活动信息
-r 输出内存和交换空间的统计信息 -b 显示I/O和传送速率的统计信息
-a 文件读写情况 -c 输出进程统计信息,每秒创建的进程数
-R 输出内存页面的统计信息 -y 终端设备活动情况
-W 输出系统交换活动信息
1、CPU监控
每10秒采样一次,连续采样3次,观察CPU 的使用情况,并将采样结果以二进制形式存入当前目录下的文件test中
[root@localhost ~]# sar -u -o test 10 3
Linux 3.10.0-1062.18.1.el7.x86_64 (localhost.localdomain) 	2020年05月15日 	_x86_64_	(2 CPU)

15时08分11秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
15时08分21秒     all      0.45      0.00      1.16      0.05      0.00     98.33
15时08分31秒     all      0.05      0.00      0.25      0.00      0.00     99.70
15时08分41秒     all      0.10      0.00      0.25      0.00      0.00     99.65
平均时间:     all      0.20      0.00      0.55      0.02      0.00     99.23
输出项 说明
CPU all 表示统计信息为所有 CPU 的平均值
%user 显示在用户级别(application)运行使用 CPU 总时间的百分比
%nice 显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比
%system 在核心级别(kernel)运行所使用 CPU 总时间的百分比
%iowait 显示用于等待I/O操作占用 CPU 总时间的百分比
%steal 管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟CPU 的百分比
%idle 显示 CPU 空闲时间占用 CPU 总时间的百分比
注意 若 %iowait 的值过高,表示硬盘存在I/O瓶颈; %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量; %idle 的值持续低于1,则系统的CPU处理能力相对较低,表明系统中最需要解决的资源是 CPU
查看二进制文件test中的内容
[root@localhost ~]# sar -u -f test 

2、inode、文件和其他内核表监控
每10秒采样一次,连续采样3次,观察核心表的状态

[root@localhost ~]# sar -v 10 3
Linux 3.10.0-1062.18.1.el7.x86_64 (localhost.localdomain) 	2020年05月15日 	_x86_64_	(2 CPU)

15时14分09秒 dentunusd   file-nr  inode-nr    pty-nr
15时14分19秒     18310      9120     33875         1
15时14分29秒     18315      9120     33880         1
15时14分39秒     18315      9120     33880         1
平均时间:     18313      9120     33878         1
输出项 说明 输出项 说明
dentunusd 目录高速缓存中未被使用的条目数量 file-nr 文件句柄(file handle)的使用数量
inode-nr 索引节点句柄(inode handle)的使用数量 pty-nr 使用的pty数量
3、内存和交换空间监控
每10秒采样一次,连续采样3次,监控内存分页
[root@localhost ~]# sar -r 10 3
Linux 3.10.0-1062.18.1.el7.x86_64 (localhost.localdomain) 	2020年05月15日 	_x86_64_	(2 CPU)

15时17分07秒 kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
15时17分17秒    131672   1731416     92.93       172   1006796   4042572    102.08    901532    590852         0
15时17分27秒    131384   1731704     92.95       172   1006796   4042568    102.08    901512    590852         0
15时17分37秒    131424   1731664     92.95       172   1006796   4042568    102.08    901532    590852         0
平均时间:    131493   1731595     92.94       172   1006796   4042569    102.08    901525    590852         0
输出项 说明
kbmemfree 这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间
kbmemused 这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间
%memused 这个值是kbmemused和内存总量(不包括swap)的一个百分比
kbbuffers和kbcached 这两个值就是free命令中的buffer和cache
kbcommit 保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap)
%commit 这个值是kbcommit与内存总量(包括swap)的一个百分比
4、内存分页监控
每10秒采样一次,连续采样3次,监控内存分页
[root@localhost ~]# sar -B 10 3
Linux 3.10.0-1062.18.1.el7.x86_64 (localhost.localdomain) 	2020年05月15日 	_x86_64_	(2 CPU)

15时21分04秒  pgpgin/s pgpgout/s   fault/s  majflt/s  pgfree/s pgscank/s pgscand/s pgsteal/s    %vmeff
15时21分14秒      0.00      0.00      8.00      0.00     46.90      0.00      0.00      0.00      0.00
15时21分24秒      0.00      7.70    267.10      0.00    123.70      0.00      0.00      0.00      0.00
15时21分34秒      0.00      0.00      8.00      0.00     40.80      0.00      0.00      0.00      0.00
平均时间:      0.00      2.57     94.37      0.00     70.47      0.00      0.00      0.00      0.00
输出项 说明
pgpgin/s 表示每秒从磁盘或SWAP置换到内存的字节数(KB)
pgpgout/s 表示每秒从内存置换到磁盘或SWAP的字节数(KB)
fault/s 每秒钟系统产生的缺页数,即主缺页与次缺页之和(major +minor)
majflt/s 每秒钟产生的主缺页数
pgfree/s 每秒被放入空闲队列中的页个数
pgscank/s 每秒被kswapd扫描的页个数
pgscand/s 每秒直接被扫描的页个数
pgsteal/s 每秒钟从cache中被清除来满足内存需要的页个数
%vmeff 每秒清除的页(pgsteal)占总扫描页(pgscank+pgscand)的百分比
5、I/O和传送速率监控
每10秒采样一次,连续采样3次,报告缓冲区的使用情况
[root@localhost ~]# sar -b 10 3
Linux 3.10.0-1062.18.1.el7.x86_64 (localhost.localdomain) 	2020年05月15日 	_x86_64_	(2 CPU)

15时27分59秒       tps      rtps      wtps   bread/s   bwrtn/s
15时28分09秒      0.10      0.00      0.10      0.00      1.60
15时28分19秒      0.00      0.00      0.00      0.00      0.00
15时28分29秒      0.20      0.00      0.20      0.00      4.20
平均时间:      0.10      0.00      0.10      0.00      1.93
输出项 说明 输出项 说明
tps 每秒钟物理设备的 I/O 传输总量 rtps 每秒钟从物理设备读入的数据总量
wtps 每秒钟向物理设备写入的数据总量 bread/s 每秒钟从物理设备读入的数据量,单位为块/s
bwrtn/s 每秒钟向物理设备写入的数据量,单位为块/s
6、进程队列长度和平均负载状态监控
每10秒采样一次,连续采样3次,监控进程队列长度和平均负载状态
[root@localhost ~]# sar -q 10 3
Linux 3.10.0-1062.18.1.el7.x86_64 (localhost.localdomain) 	2020年05月15日 	_x86_64_	(2 CPU)

15时30分58秒   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
15时31分08秒         0       495      0.00      0.01      0.05         0
15时31分18秒         0       495      0.00      0.01      0.05         0
15时31分28秒         0       495      0.00      0.01      0.05         0
平均时间:         0       495      0.00      0.01      0.05         0
输出项 说明 输出项 说明
runq-sz 运行队列的长度(等待运行的进程数) plist-sz 进程列表中进程(processes)和线程(threads)的数量
ldavg-1 最后1分钟的系统平均负载(System load average) ldavg-5 过去5分钟的系统平均负载
ldavg-15 过去15分钟的系统平均负载
7、系统交换活动信息监控
每10秒采样一次,连续采样3次,监控系统交换活动信息
[root@localhost ~]# sar -W 10 3
Linux 3.10.0-1062.18.1.el7.x86_64 (localhost.localdomain) 	2020年05月15日 	_x86_64_	(2 CPU)

15时33分51秒  pswpin/s pswpout/s
15时34分01秒      0.00      0.00
15时34分11秒      0.00      0.00
15时34分21秒      0.00      0.00
平均时间:      0.00      0.00
输出项 说明
pswpin/s 每秒系统换入的交换页面(swap page)数量
pswpout/s 每秒系统换出的交换页面(swap page)数量
8、设备使用情况监控
每10秒采样一次,连续采样3次,报告设备使用情况
[root@localhost ~]# sar -d 10 3 -p
Linux 3.10.0-1062.18.1.el7.x86_64 (localhost.localdomain) 	2020年05月15日 	_x86_64_	(2 CPU)

15时43分51秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
15时44分01秒       sda      0.10      0.00      1.00     10.00      0.00      0.00      0.00      0.00
15时44分01秒 centos-root      0.10      0.00      1.00     10.00      0.00      0.00      0.00      0.00
15时44分01秒 centos-swap      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

15时44分01秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
15时44分11秒       sda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
15时44分11秒 centos-root      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
15时44分11秒 centos-swap      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

15时44分11秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
15时44分21秒       sda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
15时44分21秒 centos-root      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
15时44分21秒 centos-swap      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

平均时间:       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
平均时间:       sda      0.03      0.00      0.33     10.00      0.00      0.00      0.00      0.00
平均时间: centos-root      0.03      0.00      0.33     10.00      0.00      0.00      0.00      0.00
平均时间: centos-swap      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
解释项 说明
tps 每秒从物理磁盘I/O的次数,多个逻辑请求会被合并为一个I/O磁盘请求
rd_sec/s 每秒读扇区的次数.
wr_sec/s 每秒写扇区的次数
avgrq-sz 平均每次设备I/O操作的数据大小(扇区)
avgqu-sz 磁盘请求队列的平均长度
await 从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1秒=1000毫秒)
svctm 系统处理每次请求的平均时间,不包括在请求队列中消耗的时间
%util I/O请求占CPU的百分比,比率越大,说明越饱和
参数-p可以打印出sda,hdc等磁盘设备名称,如果不用参数-p,设备节点则有可能是dev8-0,dev22-0
avgqu-sz 的值较低时,设备的利用率较高;当%util的值接近 1% 时,表示设备带宽已经占满

6、iotop命令

使用iotop命令可以很方便的查看每个进程是如何使用IO。实时观察磁盘io情况,可以观察到哪个进程占用I/O。

[root@localhost ~]# yum -y install iotop
参数 说明 参数 说明
-o 只显示有io操作的进程 -b 批量显示,无交互,主要用作记录到文件
-n NUM:显示NUM次,主要用于非交互式模式 -d SEC 间隔SEC秒显示一次
-p PID 监控的进程pid -u USER 监控的进程用户
[root@localhost ~]# iotop
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      
     1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % systemd~alize 22
     2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
     4 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/0:0H]
     6 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]
     7 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/0]
     8 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcu_bh]
     9 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcu_sched]

iotop常用快捷键:

  1. 左右箭头:改变排序方式,默认是按IO排序
  2. r:改变排序顺序。
  3. o:只显示有IO输出的进程。
  4. p:进程/线程的显示方式的切换。
  5. a:显示累积使用量。
  6. q:退出。

猜你喜欢

转载自blog.csdn.net/g950904/article/details/106126564