sar命令和vmstat命令详解
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 st0 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),那么不用担心,系统性能这时不会受到影响的。
iobi 从块设备接收的块(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 10procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------r b swpd free inact active si so bi bo in cs us sy id wa st0 0 242752 56264 1294680 2365840 0 0 1 18 2 2 0 2 97 0 01 0 242752 56504 1294676 2365736 0 0 0 0 1010 511 0 1 100 0 00 0 242752 55844 1294716 2366616 0 0 0 16 1011 768 1 5 94 0 00 0 242752 56760 1294716 2365888 0 0 0 190 1015 554 0 1 99 0 00 0 242752 55472 1294744 2366636 0 0 0 0 1007 751 1 6 94 0 00 0 242752 56636 1294748 2365904 0 0 0 16 1009 554 0 1 99 0 00 0 242752 55844 1294772 2366656 0 0 0 178 1020 746 1 6 93 0 00 0 242752 56884 1294768 2365940 0 0 0 0 1007 543 0 1 99 0 01 0 242752 55208 1294816 2367220 0 0 0 206 1021 726 0 4 95 0 00 0 242752 56760 1294796 2365960 0 0 0 16 1009 606 0 2 98 0 0
参考链接 :
https://blog.csdn.net/m0_38110132/article/details/84187399
sar用法详解 :Linux的sar命令详解
iostat用法详解:Linux IO实时监控iostat命令详解
vmstat用法详解:Linux vmstat命令实战详解
https://blog.csdn.net/m0_38110132/article/details/84189937
sar命令和vmstat命令详解相关推荐
- linux中whoami命令的作用是,linux whoami命令参数及用法详解(linux查看登陆用户名)
linux whoami命令参数及用法详解(linux查看登陆用户名) 2019年05月31日 | 萬仟网科技 | 我要评论 whoami 命令显示登录名.与使用命令 who 并指定 am i 不同, ...
- Python必备基本技能——命令行参数args详解
Python必备基本技能--命令行参数args详解 1. 效果图 2. 源码 2.1 简单命令行参数 2.1 轮廓检测源代码 参考 这篇博客将介绍一项开发人员.工程师和计算机科学家必备的技能--命令行 ...
- Shell test命令(Shell [])详解,附带所有选项及说明
test 是 Shell 内置命令,用来检测某个条件是否成立.test 通常和 if 语句一起使用,并且大部分 if 语句都依赖 test. test 命令有很多选项,可以进行数值.字符串和文件三个方 ...
- linux mount命令参数及用法详解
linux mount命令参数及用法详解 非原创,主要来自 http://www.360doc.com/content/13/0608/14/12600778_291501907.shtml. htt ...
- linux useradd(adduser)命令参数及用法详解(linux创建新用户命令)
linux useradd(adduser)命令参数及用法详解(linux创建新用户命令) useradd可用来建立用户帐号.帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号 ...
- Kubernetes二进制集群部署+Web管理界面+kubectl 命令管理+YAML文件详解(集合)
Kubernetes---- 二进制集群部署(ETCD集群+Flannel网络) Kubernetes----单节点部署 Kubernetes----双master节点二进制部署 Kubernetes ...
- python u_对python 命令的-u参数详解
缘起: 今天在看arcface的训练代码,在shell脚本中运行python 命令时后面加了-u 参数(python -u xx.py),于是对这个参数进行了下小研究. 准备知识 用网上的一个程序示例 ...
- linux中group命令详解,linux groupmod命令参数及用法详解
需要更改群组的识别码或名称时,可用groupmod指令来完成这项工作.接下来是小编为大家收集的linux groupmod命令参数及用法详解,希望能帮到大家. linux groupmod命令参数及用 ...
- linux ipset 流量,linux中ipset命令的使用方法详解
linux中ipset命令的使用方法详解 发布时间:2020-10-25 17:07:19 来源:脚本之家 阅读:97 作者:lijiaocn 栏目:服务器 ipset介绍 iptables是在lin ...
最新文章
- ArcGIS放射状流向地图
- MySQL数据库Keepalived双主
- Java 中的位移运算符
- python 中的__getattr__和__setattr__
- 第六节:反射(几种写法、好处和弊端、利用反射实现IOC)
- hibernate 的第一个工程
- python是干嘛的-python语言是干什么的
- qt传值给js及js传值给qt(qt及js的交互)
- 红米开发版刷机教程_红米K30开发版刷机包(官方完整最新固件升级包MIUI12)
- 初级产品经理的日常工作流程汇总
- K9G8G08U0A升级到K9GAG08U0D烧录NK要注意的地方
- 小程序录音php上传,微信小程序录音文件.silk上传服务器转mp3格式
- 以个性化为需求如何选择ITSM系统?
- Java自幂数计算及其算法改进
- 修复计算机有什么用,电脑硬盘坏道修复了对以后电脑使用有什么影响吗?
- 7 .Linux文件目录类——pwd,ls,cd,mkdir,rmdir,touch,cp,rm,mv,cat,more,less,echo,head,tail,> 重定向 >> 追加,history
- 微信H5页面前端开发,大多数人都会遇到的几个兼容性坑(转载)
- Android Animation 分析与总结
- 一篇论文又是Major Revision
- U盘装系统启动热键 (开机时使用)启动按键
热门文章
- python跳过本次循环_Python的一些格式与逻辑控制语句
- linux定时删除文件指令,Linux实践——定时删除目录下面的文件
- R2: 相关系数、复相关系数及半偏相关系数之间的联系
- 深入理解Java String 池概念(String pool concept)
- 指定locale为en_US
- EBMIDE——打印格式管理
- valueOf()和toString()详解
- C#打开php链接传参然后接收返回值
- ASP.NET Web API 配置 JSONP
- 思想一碰就冒火: 开源贡献须耐心, 选择框架要谨慎