sar是一个非常全面的一个分析工具,对文件的读写,系统调用的使用情况,磁盘IO,CPU相关使用情况,内存使用情况,进程活动等都可以进行有效的分析。sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的特点是可以连续对系统取样,获得大量的取样数据。取样数据和分析的结果都可以存入文件,使用它时消耗的系统资源很小。

--help查看一下:

[root@iZuf657isp1alim7einvk6Z ~]# sar --help
用法: sar [ 选项 ] [ <时间间隔> [ <次数> ] ]
Options are:
[ -A ] [ -b ] [ -B ] [ -C ] [ -d ] [ -h ] [ -m ] [ -p ] [ -q ] [ -r ] [ -R ]
[ -S ] [ -t ] [ -u [ ALL ] ] [ -v ] [ -V ] [ -w ] [ -W ] [ -y ]
[ -I { <int> [,...] | SUM | ALL | XALL } ] [ -P { <cpu> [,...] | ALL } ]
[ -j { ID | LABEL | PATH | UUID | ... } ] [ -n { <keyword> [,...] | ALL } ]
[ -o [ <filename> ] | -f [ <filename> ] ] [ --legacy ]
[ -i <interval> ] [ -s [ <hh:mm:ss> ] ] [ -e [ <hh:mm:ss> ] ]

-A:所有报告的总和。

-u:输出CPU使用情况的统计信息。

-v:输出inode、文件和其他内核表的统计信息。

-d:输出每一个块设备的活动信息。

-r:输出内存和交换空间的统计信息。

-b:显示I/O和传送速率的统计信息。

-R:输出内存页面的统计信息。

-y:终端设备活动情况。

-w:输出系统交换活动信息。

-B:显示换页状态。

-e:设置显示报告的结束时间。

-f:从指定文件提取报告。

-i:设状态信息刷新的间隔时间。

-p:报告每个CPU的状态。

-q:平均负载分析。

下面介绍几个常用的:

1、统计CPU使用情况

命令:sar -u 1 3,统计CPU的使用情况,每间隔1秒钟统计一次总共统计三次。

[root@iZuf657isp1alim7einvk6Z ~]# sar -u 1 3
Linux 2.6.32-754.23.1.el6.x86_64 (iZuf657isp1alim7einvk6Z) 2022年09月04日 _x86_64_ (8 CPU) 23时55分22秒 CPU %user %nice %system %iowait %steal %idle
23时55分23秒 all 14.81 0.00 1.14 8.35 0.00 75.70
23时55分24秒 all 14.34 0.00 1.26 7.42 0.00 76.98
23时55分25秒 all 14.18 0.00 1.01 7.47 0.00 77.34
平均时间: all 14.44 0.00 1.14 7.75 0.00 76.67

%user:用户空间的CPU使用。

%nice:改变过优先级的进程的CPU使用率。

%system:内核空间的CPU使用率。

%iowait:CPU等待IO的百分比。

%steal:虚拟机的虚拟机CPU使用的CPU。

%idle:空闲的CPU。

在以上的显示当中,主要看%iowait和%idle,%iowait过高表示存在I/O瓶颈,即磁盘IO无法满足业务需求,如果%idle过低表示CPU使用率比较严重,需要结合内存使用等情况判断CPU是否瓶颈。

2、内存统计分析

命令:sar -r 1 3,查看内存使用情况,每间隔1秒钟统计一次总共统计三次。

[root@iZuf657isp1alim7einvk6Z ~]# sar -r 1 3
Linux 2.6.32-754.23.1.el6.x86_64 (iZuf657isp1alim7einvk6Z) 2022年09月05日 _x86_64_ (8 CPU) 00时01分16秒 kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit
00时01分17秒 369456 32510660 98.88 128704 7057296 20432776 62.14
00时01分18秒 365828 32514288 98.89 128704 7061612 20432776 62.14
00时01分19秒 359528 32520588 98.91 128704 7066180 20436368 62.15
平均时间: 364937 32515179 98.89 128704 7061696 20433973 62.15

kbmemfree:空闲的物理内存大小。

kbmemused:使用中的物理内存大小。

%memused:物理内存使用率。

kbbuffers:内核中作为缓冲区使用的物理内存大小,kbbuffers和kbcached:这两个值就是free命令中的buffer和cache。

kbcached:缓存的文件大小。

kbcommit:保证当前系统正常运行所需要的最小内存,即为了确保内存不溢出而需要的最少内存(物理内存+Swap分区)。

%commit:这个值是kbcommit与内存总量(物理内存+swap分区)的一个百分比的。

3、平均负载统计分析

命令:sar -q 1 3,查看内存使用情况,每间隔1秒钟统计一次总共统计三次。

[root@iZuf657isp1alim7einvk6Z ~]# sar -q 1 3
Linux 2.6.32-754.23.1.el6.x86_64 (iZuf657isp1alim7einvk6Z) 2022年09月05日 _x86_64_ (8 CPU) 00时04分57秒 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15
00时04分58秒 1 646 1.91 1.82 1.75
00时04分59秒 1 646 1.91 1.82 1.75
00时05分00秒 1 646 1.91 1.82 1.75
平均时间: 1 646 1.91 1.82 1.75

runq-sz:运行队列的长度(等待运行的进程数,每核的CP不能超过3个)。

plist-sz:进程列表中的进程(processes)和线程数(threads)的数量。

ldavg-1:最后1分钟的CPU平均负载,即将多核CPU过去一分钟的负载相加再除以核心数得出的平均值,5分钟和15分钟以此类推。

ldavg-5:最后5分钟的CPU平均负载。

ldavg-15:最后15分钟的CPU平均负载。

4、统计swap分区

命令:sar -W 1 3,查看系统swap分区的统计信息:每间隔1秒钟统计一次总共统计三次。

[root@iZuf657isp1alim7einvk6Z ~]# sar -W 1 3
Linux 2.6.32-754.23.1.el6.x86_64 (iZuf657isp1alim7einvk6Z) 2022年09月05日 _x86_64_ (8 CPU) 00时07分01秒 pswpin/s pswpout/s
00时07分02秒 0.00 0.00
00时07分03秒 0.00 0.00
00时07分04秒 0.00 0.00
平均时间: 0.00 0.00

pswpin/s:每秒从交换分区到系统的交换页面(swap page)数量。

pswpott/s:每秒从系统交换到swap的交换页面(swap page)的数量。

5、查看磁盘使用情况

命令:sar -d 1 3,磁盘使用详情统计,每间隔1秒钟统计一次总共统计三次。

[root@iZuf657isp1alim7einvk6Z ~]# sar -d 1 3
Linux 2.6.32-754.23.1.el6.x86_64 (iZuf657isp1alim7einvk6Z) 2022年09月05日 _x86_64_ (8 CPU) 00时09分05秒 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
00时09分06秒 dev252-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
00时09分06秒 dev252-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 00时09分06秒 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
00时09分07秒 dev252-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
00时09分07秒 dev252-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 00时09分07秒 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
00时09分08秒 dev252-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
00时09分08秒 dev252-16 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
平均时间: dev252-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均时间: dev252-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

DEV:磁盘设备的名称。

tps:每秒I/O的传输总数。

rd_sec/s:每秒读取的扇区的总数。

wr_sec/s:每秒写入的扇区的总数。

avgrq-sz:平均每次次磁盘I/O操作的数据大小(扇区)。

avgqu-sz:磁盘请求队列的平均长度。

await:从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1秒等于1000毫秒),等于寻道时间+队列时间+服务时间。

svctm:I/O的服务处理时间,即不包括请求队列中的时间。

%util:I/O请求占用的CPU百分比,值越高,说明I/O越慢。

6、查看磁盘IO

命令:sar -b 1 3,查看I/O和传递速率的统计信息,每间隔1秒钟统计一次总共统计三次。

[root@iZuf657isp1alim7einvk6Z ~]# sar -b 1 3
Linux 2.6.32-754.23.1.el6.x86_64 (iZuf657isp1alim7einvk6Z) 2022年09月05日 _x86_64_ (8 CPU) 00时12分08秒 tps rtps wtps bread/s bwrtn/s
00时12分09秒 0.00 0.00 0.00 0.00 0.00
00时12分10秒 2.08 0.00 2.08 0.00 41.67
00时12分11秒 7.00 0.00 7.00 0.00 144.00
平均时间: 3.07 0.00 3.07 0.00 62.80

tps:磁盘每秒钟的IO总数,等于iostat中的tps。

rtps:每秒钟从磁盘读取的IO总数。

wtps:每秒钟从写入到磁盘的IO总数。

bread/s:每秒钟从磁盘读取的块总数。

bwrtn/s:每秒钟此写入到磁盘的块总数。

Linux性能监控(一)-sar的更多相关文章

  1. Linux性能监控命令——sar

    介绍 sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况.系统调用的 ...

  2. 【性能测试】Linux性能监控命令——sar详解

    转载:https://blog.csdn.net/mig_davidli/article/details/52149993 sar命令可以从文件的读写情况.系统调用的使用情况.磁盘I/O.CPU效率. ...

  3. Linux性能监控

    转自:http://blog.csdn.net/chosen0ne/article/details/8200737 linux性能监控,就是要监控系统的各个子系统是否正常.linux主要的子系统包括: ...

  4. linux性能监控 -CPU、Memory、IO、Network等指标的讲解

    [操作系统-linux]linux性能监控 -CPU.Memory.IO.Network等指标的讲解(转) 一.CPU 1.良好状态指标 CPU利用率:User Time <= 70%,Syst ...

  5. Linux性能监控与分析之--- CPU

    Linux性能监控与分析之--- CPU 望月成三人关注 2016.07.25 18:16:12字数 1,576阅读 2,837 CPU性能指标 用户进程使用CPU的比率 系统进程使用CPU的比率 W ...

  6. Linux 性能监控之CPU&内存&I/O监控Shell脚本2

    Linux 性能监控之CPU&内存&I/O监控Shell脚本2   by:授客 QQ:1033553122 思路: 捕获数据->停止捕获数据->提取数据 备注:一些命令的输 ...

  7. Linux 性能监控之CPU&内存&I/O监控Shell脚本1

    Linux 性能监控之CPU&内存&I/O监控Shell脚本1   by:授客 QQ:1033553122   #!/bin/bash # 获取要监控的本地服务器IP地址 IP=`if ...

  8. Linux性能监控分析命令(二)—sar命令介绍

    性能监控分析的命令包括如下: 1.vmstat 2.sar 3.iostat 4.top 5.free 6.uptime 7.netstat 8.ps 9.strace 10.lsof ======= ...

  9. 使用vmstat和iostat命令进行Linux性能监控【转】

    转自:https://linux.cn/article-4024-1.html 这是我们正在进行的Linux命令和性能监控系列的一部分.vmstat和iostat两个命令都适用于所有主要的类unix系 ...

  10. vmstat和iostat命令进行Linux性能监控

    这是我们正在进行的Linux命令和性能监控系列的一部分.vmstat和iostat两个命令都适用于所有主要的类unix系统(Linux/unix/FreeBSD/Solaris). 如果vmstat和 ...

随机推荐

  1. 深度学习实践篇[17]:模型压缩技术、模型蒸馏算法:Patient-KD、DistilBERT、DynaBERT、TinyBERT

    深度学习实践篇[17]:模型压缩技术.模型蒸馏算法:Patient-KD.DistilBERT.DynaBERT.TinyBERT 1.模型压缩概述 1.2模型压缩原有 理论上来说,深度神经网络模型越 ...

  2. 驱动开发:应用DeviceIoContro开发模板

    内核中执行代码后需要将结果动态显示给应用层的用户,DeviceIoControl 是直接发送控制代码到指定的设备驱动程序,使相应的移动设备以执行相应的操作的函数,如下代码是一个经典的驱动开发模板框架, ...

  3. ChatGPT 对接微信公众号技术方案实现!

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 9天假期写了8天代码和10篇文章,这个5.1过的很爽! 如假期前小傅哥的计划一样,这个假期开启 ...

  4. P5501 [LnOI2019] 来者不拒,去者不追 题解

    题目链接:来者不拒,去者不追 直接在线查询题目所给的式子是很困难的,我们考虑单点考察贡献.对于一个已经确定的式子,我们发现加入一个数或者删除一个数的贡献如图所示: 如图所示,在原有的序列为 \((1, ...

  5. P4103 [HEOI2014] 大工程 题解

    题目链接:大工程 先考虑只有一次查询,很显然我们可以暴力树上 dp 处理出答案. 对于每个节点而言,有: 容易看出类似点分治逐个遍历子树计算前面一堆子树对后面子树的贡献思想,我们可以很容易的知道: 对 ...

  6. WebAssembly核心编程[3]: Module 与 Instance

    WebAssembly程序总是以模块来组织,模块是基本的部署.加载和编译单元.在JavaScript编程接口中,模块通过WebAssembly.Module类型表示.WebAssembly.Modul ...

  7. ADG备库中某个PDB缺失temp文件

    之前认为缺失的temp文件在开库时会自动创建,但其实也有不能自动创建的场景,alert会有类似如下提示: 2023-05-11T20:35:35.974983+08:00 AWR(6):******* ...

  8. CF1841

    A 题意:给一个长度为 \(n\) 的全是 \(1\) 的数列,Alice 先操作,Bob 交替.每次操作选择至少两个(可以更多)相等的数字,删除它们,在序列中加入它们的和.直到有人不能操作为止,这个 ...

  9. Linux常用的20个命令(上)

    无论你是后端程序员还是前端程序员,都避免不了和Linux打交道.Linux的命令有很多,这里仅介绍常用的20个,方便快速查看,也欢迎大家作补充. 1.mkdir 命令 make directories ...

  10. Ubuntu 20.04 出现 SSL_connect: error:1425F102 .. unsupported protocol问题的解决

    在安装完Ubuntu 20.04后, 这个问题影响了好几个软件, 包括MySQL Workbench, Openfortigui等等, 出现的错误都是 ERROR: SSL_connect: erro ...