sar命令
options 为命令行选项,sar命令常用选项如下:
-A:所有报告的总和
-u:输出CPU使用情况的统计信息
-v:输出inode、文件和其他内核表的统计信息
-d:输出每一个块设备的活动信息
-r:输出内存和交换空间的统计信息
-b:显示I/O和传送速率的统计信息
-a:文件读写情况
-c:输出进程统计信息,每秒创建的进程数
-R:输出内存页面的统计信息
-y:终端设备活动情况
-w:输出系统交换活动信息
1、sar 5 6 //每隔5s 输出6次后退出
16时13分01秒 CPU %user %nice %system %iowait %steal %idle
16时13分06秒 all 9.15 0.00 48.19 0.05 0.00 42.61
16时13分11秒 all 2.13 0.00 8.76 0.08 0.00 89.03
16时13分16秒 all 2.13 0.00 11.41 0.03 0.00 86.44
16时13分21秒 all 2.20 0.00 10.61 0.05 0.00 87.14
16时13分26秒 all 2.48 0.00 10.44 0.08 0.00 87.00
16时13分31秒 all 2.40 0.00 10.51 0.05 0.00 87.00
注:
CPU:all 表示统计信息为所有 CPU 的平均值。
%user:显示在用户级别(application)运行使用 CPU 总时间的百分比。
%nice:显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。
%system:在核心级别(kernel)运行所使用 CPU 总时间的百分比。
%iowait:显示用于等待I/O操作占用 CPU 总时间的百分比。
%steal:管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。
%idle:显示 CPU 空闲时间占用 CPU 总时间的百分比。
每10秒采样一次,连续采样3次,观察CPU 的使用情况,并将采样结果以二进制形式存入当前目录下的文件test中,需键入如下命令:
sar -u -o test 10 3
例如,每10秒采样一次,连续采样3次,监控内存分页:
sar -r 10 3
屏幕显示如下:
输出项说明:
kbmemfree:这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间.
kbmemused:这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间.
%memused:这个值是kbmemused和内存总量(不包括swap)的一个百分比.
kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.
kbcommit:保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap).
%commit:这个值是kbcommit与内存总量(包括swap)的一个百分比.
例如,每10秒采样一次,连续采样3次,报告缓冲区的使用情况,需键入如下命令:
sar -b 10 3
屏幕显示如下:
18:51:05 tps rtps wtps bread/s bwrtn/s
18:51:15 0.00 0.00 0.00 0.00 0.00
18:51:25 1.92 0.00 1.92 0.00 22.65
18:51:35 0.00 0.00 0.00 0.00 0.00
Average: 0.64 0.00 0.64 0.00 7.59
输出项说明:
tps:每秒钟物理设备的 I/O 传输总量
rtps:每秒钟从物理设备读入的数据总量
wtps:每秒钟向物理设备写入的数据总量
bread/s:每秒钟从物理设备读入的数据量,单位为 块/s
bwrtn/s:每秒钟向物理设备写入的数据量,单位为 块/s
例如,每10秒采样一次,连续采样3次,报告缓冲区的使用情况,需键入如下命令:
sar -b 10 3
屏幕显示如下:
18:51:05 tps rtps wtps bread/s bwrtn/s
18:51:15 0.00 0.00 0.00 0.00 0.00
18:51:25 1.92 0.00 1.92 0.00 22.65
18:51:35 0.00 0.00 0.00 0.00 0.00
Average: 0.64 0.00 0.64 0.00 7.59
输出项说明:
tps:每秒钟物理设备的 I/O 传输总量
rtps:每秒钟从物理设备读入的数据总量
wtps:每秒钟向物理设备写入的数据总量
bread/s:每秒钟从物理设备读入的数据量,单位为 块/s
bwrtn/s:每秒钟向物理设备写入的数据量,单位为 块/s
要判断系统瓶颈问题,有时需几个 sar 命令选项结合起来
怀疑CPU存在瓶颈,可用 sar -u 和 sar -q 等来查看
怀疑内存存在瓶颈,可用 sar -B、sar -r 和 sar -W 等来查看
怀疑I/O存在瓶颈,可用 sar -b、sar -u 和 sar -d 等来查看
2、vmstat命令
vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、IO读写、CPU活动等进行监视。它是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。
指令所在路径:/usr/bin/vmstat
-a 显示活跃内存(active)和非活跃内存(inact)
-f 显示从系统启动至今的fork数量
-m 显示slabinfo
-s 静态显示内存相关信息
root@ubuntu:~# vmstat
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 20984 114408 71112 557240 0 0 8 51 57 137 1 1 98 1 0
各个字段对应的项含义如下
procs
- r 正在等待运行的进程数
- b 在uninterruptible 睡眠中的进程数
memory
- swpd 以使用的swap空间
- free 剩余的物理内存
- buff buffer
- cache cache
- inact 非活动的内数量(-a选项)
- active 活动的内存的数量(-a选项)
swap
-
si 从磁盘交换的内存大小
-
so 交换到磁盘的内存大小
内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。
当看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,这个是不正确的。不能光看这一点,还要结合si和so,
如果free很少,但是si和so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。
io -
bi 从块设备接收的块(block/s)
-
bo 发送给块设备的块(block/s).如果这个值长期不为0,说明内存可能有问题,因为没有使用到缓存(当然,不排除直接I/O的情况,但是一般很少有直接I/O的)
system
- in 每秒的中断次数,包括时钟中断
- cs 进程上下文切换次数
cpu
- us 用户进程占用CPU时间比例
- sy 系统占用CPU时间比例
- id CPU空闲时间比
- wa IO等待时间比(IO等待高时,可能是磁盘性能有问题了)
- st steal time
显示磁盘分区数据(disk partition statistics )
[oracle@mylnx01 ~]$ vmstat -p sdc5 2 10
sdc5 reads read sectors writes requested writes
54270570 7234336956 8939045 276196850
54270570 7234336956 8939045 276196850
54270570 7234336956 8939050 276196978
54270570 7234336956 8939053 276197074
54270574 7234337260 8939053 276197074
54270577 7234337292 8939066 276197346
54270622 7234339700 8939066 276197346
54270622 7234339700 8939069 276197442
54270859 7234342828 8939078 276197634
54271074 7234345452 8939080 276197666
显示各种事件计数器表和内存统计信息,这显示不重复。
[oracle@mylnx01 bdump]$ vmstat -s
33011144 total memory
32799072 used memory
24606736 active memory
6175700 inactive memory
212072 free memory
52288 buffer memory
30158708 swap cache
12582904 total swap
610348 used swap
11972556 free swap
44159969 non-nice user cpu ticks
8172 nice user cpu ticks
6077972 system cpu ticks
389217442 idle cpu ticks
40807984 IO-wait cpu ticks
123964 IRQ cpu ticks
383333 softirq cpu ticks
0 stolen cpu ticks
10331447387 pages paged in
2287459081 pages paged out
1524480 pages swapped in
1433512 pages swapped out
2358479992 interrupts
1876082783 CPU context switches
1481100317 boot time
15573677 forks
显示活动(active)与非活动(inactive)的内存
[root@DB-Server ~]# vmstat -a 2 10
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free inact active si so bi bo in cs us sy id wa st
0 0 242752 56264 1294680 2365840 0 0 1 18 2 2 0 2 97 0 0
1 0 242752 56504 1294676 2365736 0 0 0 0 1010 511 0 1 100 0 0
0 0 242752 55844 1294716 2366616 0 0 0 16 1011 768 1 5 94 0 0
0 0 242752 56760 1294716 2365888 0 0 0 190 1015 554 0 1 99 0 0
0 0 242752 55472 1294744 2366636 0 0 0 0 1007 751 1 6 94 0 0
0 0 242752 56636 1294748 2365904 0 0 0 16 1009 554 0 1 99 0 0
0 0 242752 55844 1294772 2366656 0 0 0 178 1020 746 1 6 93 0 0
0 0 242752 56884 1294768 2365940 0 0 0 0 1007 543 0 1 99 0 0
1 0 242752 55208 1294816 2367220 0 0 0 206 1021 726 0 4 95 0 0
0 0 242752 56760 1294796 2365960 0 0 0 16 1009 606 0 2 98 0 0
参考链接 :
https://blog.youkuaiyun.com/m0_38110132/article/details/84187399
sar用法详解 :Linux的sar命令详解
iostat用法详解:Linux IO实时监控iostat命令详解
vmstat用法详解:Linux vmstat命令实战详解
https://blog.youkuaiyun.com/m0_38110132/article/details/84189937