linux sar指令是一个综合性的系统监控指令,功能比较丰富,集大成者,对分析CPU、内存、网络等都有比较大的帮助。此指令支持支持间歇性采样,“比如sar -u 1 100”,表示每隔1秒、总共采样100次。
1、sar -A:打印所有的信息。它的结果是所有能支持参数的合集(统计值),对分析没有太大帮助。不过如果你希望获取某个时间点的所有监控数据,可以通过此指令将数据导入到文件。
2、sar -b:打印IO和传送率的统计值(所有块设备总和)
# sar -b 1 01:00:29 PM tps rtps wtps bread/s bwrtn/s 01:00:30 PM 3951.58 223.16 3728.42 56084.21 953018.95 01:00:31 PM 249.50 234.65 14.85 58843.56 475.25 01:00:32 PM 237.37 237.37 0.00 60250.51 0.00 01:00:33 PM 237.00 235.00 2.00 59904.00 16.00
1)tps:磁盘IO的每秒请求数,包括读写(进程的逻辑请求在外设层面可以被合并成一个)。此值越高,表示磁盘并发请求量越高,但还不能判定磁盘的瓶颈。(稍后根据sar -d判断)
2)rtps/wtps:读写请求每秒数。
3)bread/bwrtn:每秒读写的块数量。通常一个块大小为1kb,可以粗略估算磁盘IO情况。
3、sar -B:页缓存的情况统计值。
# sar -B 1 01:20:26 PM pgpgin/s pgpgout/s fault/s majflt/s pgfree/s pgscank/s pgscand/s pgsteal/s %vmeff 01:20:27 PM 4.00 8.00 4180.00 0.00 3137.00 0.00 0.00 0.00 0.00 01:20:28 PM 0.00 34404.04 3049.49 0.00 8590.91 5657.58 0.00 5657.58 100.00 01:20:29 PM 0.00 8.00 3012.00 0.00 2763.00 0.00 0.00 0.00 0.00
1)pgpgin/s:每秒从磁盘中page in的数据量(kb)。
2)pgpgout/s:每秒page out到磁盘的数据量(kb)。这两个数据不同于swap,它们仅仅是反应进程对文件系统的数据操作(memory mapping?)。即使关闭了swap,这两个值仍然会很大,特别是在文件IO频繁的系统。
4、sar -d:查看每个磁盘设备的状况
# sar -d 1 02:00:52 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 02:00:53 PM dev202-0 4.00 0.00 112.00 28.00 0.00 1.00 1.00 0.40 02:00:53 PM dev202-32 80.00 0.00 14360.00 179.50 0.18 2.30 0.10 0.80 02:00:53 PM dev202-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
1)tps:每秒读写请求总数。此值越高,表示磁盘越麻烦。
2)avgrq-sz:平均每次请求操作的扇区(selector)大小。
3)avgqu-sz:此磁盘请求的等待队列请求数,此值越大,表示此盘并发请求越高,且有达到瓶颈的可能。
4)await:IO请求从接受到完成所需的总时间(平均),包括在等待队列中的等待时间。此值越高,表示IO响应越慢,也是磁盘瓶颈的一个反应。我们需要综合tps、argqu-sz综合判断。
5)svctm:IO请求处理的平均时间,不包括等待队列的等待时间。此值越接近await说明实际等待时间越少,磁盘实际响应效率越高;反之,表明磁盘瓶颈越高。
6)%uitl:IO请求消耗CPU占比,通常此值很低,此值越高说明IO请求越密集、越饱和(即CPU用于处理IO的时间越高,对于存储系统,我们希望它高一些,此外还有关注load等)。
5、sar -n:查看网络,感觉没有netstat好用。
6、sar -p:查看CPU的统计值
#sar -p 1 03:57:12 PM CPU %user %nice %system %iowait %steal %idle 03:57:13 PM all 5.45 0.00 1.00 0.00 0.00 93.55 03:57:14 PM all 4.65 0.00 1.19 0.06 0.00 94.10
使用“sar -u ALL”查看每个CPU的具体详情,数据指标与上差不多。
7、sar -q:系统load分析
#sar -q 1 03:58:33 PM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 03:58:34 PM 1 452 1.19 1.07 0.98 03:58:35 PM 1 452 1.19 1.07 0.98 03:58:36 PM 2 452 1.18 1.07 0.98
1)runq-sz:等待运行的任务数,此值我们需要多观察,此值越高,潜在表明CPU可能load较高,我们需要考虑升级CPU了。
2)plist-sz:执行中或者亟待执行的任务数。此值反应并发量。
3)ldavg-1、-5、-15分别表示CPU平均load在1、5、15分钟线的值。
8、sar -r:查看内存统计信息
# sar -r 1 04:13:11 PM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit 04:13:12 PM 216972 30665448 99.30 9184 6324780 28734268 93.04 04:13:13 PM 227780 30654640 99.26 9184 6313488 28726728 93.02 04:13:14 PM 217268 30665152 99.30 9188 6324428 28734276 93.04
1)kbmemfree:空闲内存,单位kb。
2)kbmemused,%memused:已用内存。
3)kbbuffers:缓冲区内存,通常是网络IO、磁盘IO使用的临时缓冲区,随进程操作结束而消亡。
4)kbcached:缓存大小,IO操作产生的页缓存等。此区数据有系统维护,需要时可以被回收并分配。
5)kbcommit:保证当前系统所需要的内存,即为了确保不溢出二所需要的内存(RAM + SWAP)。
6)%commit:kbcommit与内存总量占比,超过100%表示使用了swap且有内存不足的分险,避免swap则需要扩容内存。
9、sar -w:查看进程创建和cs时间。用途不大,如果发现cs较高,通常在cpu层面就能反应,此外可以根据pidstat来辅助分析进程cs的具体情况。
10、sar -W:查看页交换情况,通常可以辅助发现swap的发生。页交换频繁,通常意味着内存不足,潜在引起性能较低。
# sar -W 1 04:55:34 PM pswpin/s pswpout/s 04:55:35 PM 0.00 0.00 04:55:36 PM 0.00 0.00
1)pswpin/s:每秒交换页的数量,从磁盘到内存。
2)pswpout/s:每秒换出页的数量,从内存到磁盘。注意,如果swap开启,这两个值通常会在内存不足
(包括虚拟内存)时发生,会在一定程度上影响性能,还会导致load较高。
参考:
1)https://linux.die.net/man/1/sar
2)https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/sar.html
相关推荐
SAL和SAR指令用于算术左移和右移,它们在进行右移操作时会保留符号位。ROL、ROR、RCL和RCR指令用于循环移位操作,这些指令在进行移位的同时会考虑进位标志。 除了上述指令外,还有一些指令涉及到处理器的控制操作,...
源代码是编程语言编写的原始指令,用于实现特定的计算任务,这里是SAR图像处理的算法实现。通过分析和理解这些源代码,我们可以深入学习SAR成像的细节,包括数据采集、信号处理、图像重建等步骤。 SAR成像的基本...
### Intel汇编指令手册知识点详解 #### 数据传输指令 数据传输指令主要负责处理不同存储位置之间的数据移动,包括但不限于...通过对这些指令的学习和掌握,开发者能够有效地利用处理器的能力来构建高效、可靠的程序。
对于学习和从事汇编语言编程的人来说,这是一份非常实用的参考资料。 #### 1. 数据移动指令 数据移动指令用于在寄存器之间或内存与寄存器之间进行数据传输。 - **MOV**:将一个值或地址复制到另一个位置。例如,`...
3. 逻辑指令:包括and、or、not、xor、test、shl、shr、sal、sar、rol、ror、rcl、rcr等。除了not指令外,其他逻辑指令在执行后会影响标志寄存器的相关标志位。 4. 转移指令:这类指令可以修改指令指针寄存器IP,或...
- **ARX**:在LAR和SAR指令中,用于指定要加载或保存的辅助寄存器的3位标识。 - **BITX**:在BIT测试指令中,用于指定位测试,如1110代表测试D1位。 - **CM**:2位值,用于比较操作,例如测试当前AR与AR0的关系。...
- **SHL/SAL/SHR/SAR**:左移/右移指令,SAL等同于SHL,SAR用于算术右移。 - **ROL/ROR/RCL/RCR**:循环移位指令,可以指定移位次数。 #### 串指令 串指令用于对内存中的字符串进行操作,包括传送、比较和扫描等。 ...
### 汇编指令命令大全学习 #### 一、数据传送指令 1. **基本数据传送指令** - **MOV**:将一个操作数的值传送到另一个操作数。 - **MOVSX**:符号扩展传送,适用于字节到字或双字的转换。 - **MOVZX**:零扩展...
位运算指令如SHL、SAL、SHR、SAR、ROL、ROR、RCL和RCR等,负责处理位的左移、右移和循环移位,这些操作在数据处理和加密算法中有着广泛的应用。 逻辑运算和位运算指令通常在程序中用来进行位级别的数据操作,这对于...
本篇学习教案聚焦于计算机硬件基础中的指令系统,特别是逻辑运算指令和移位指令,以及串操作指令的原理与应用,这些都是编程和系统设计不可或缺的基础知识。通过本篇教案的学习,学生不仅能够掌握计算机底层的工作...
移位指令如`SHL`、`SHR`、`SAR`、`ROL`、`ROR`、`RCL`和`RCR`用于改变操作数的位模式,通过左移、右移或循环移位。这些指令可以用来实现位操作,例如设置或清除特定位,或者将数值乘以或除以2的幂次。 五、串操作...
### 汇编语言指令集解析 #### 一、数据移动指令 1. **MOV (Move)**:数据移动指令,用于将源操作数的值复制到目标操作数。 - **格式**: - `MOV r1, r2`:寄存器到...理解这些指令对于学习和使用汇编语言至关重要。
9. **SAR**:算术右移指令,用于将操作数向右移动指定位数。 - 示例:`SAR AX, 1` 将AX中的值向右移动一位,并保持符号位不变。 10. **ROL**:循环左移指令,用于将操作数向左循环移动指定位数。 - 示例:`ROL AX...
对8086汇编指令的学习和应用,不仅能够帮助我们深入了解计算机的硬件架构,还能让我们在解决底层问题时拥有更多的控制能力。随着技术的发展,虽然高级语言越来越多地替代了汇编语言在日常开发中的地位,但在系统软件...
汇编指令的掌握是学习汇编语言的基础,了解和熟练运用这些指令,可以编写出更高效、更精确的程序,更好地理解和控制计算机的硬件资源。在实际编程中,汇编语言常用于编写操作系统内核、驱动程序、游戏引擎的性能关键...
- **SHL/SAL/SHR/SAR**: 分别代表左移(算术与逻辑)、右移(逻辑)和右移(算术),用于位运算。 - **AND/OR/XOR/NOT**: 位与、位或、位异或和位非运算,用于二进制数据的逻辑处理。 #### 控制流指令 控制流指令...
移位指令(SHL、SAL、SHR、SAR)和循环移位指令(ROL、ROR、RCL、RCR)改变位的顺序。串处理指令如MOVS、CMPS、SCAS、LODS和STOS用于处理连续的数据序列。控制转移指令如JMP、JCC(条件跳转)和LOOP用于程序流程控制...