[转帖]sar -Linux 上全面的系统性能分析工具(1)

sar,linux,全面,系统,性能,分析,工具 · 浏览次数 : 0

小编点评

生成内容时需要带简单的排版,方法如下: 1. **使用 tab 或空格键**来对文字进行排列。 2. **使用换行符**(\n)将多个字符的排列成一行。 3. **使用 **空格** 或 ****tab**键**来对文字进行排列。 4. **使用 ****空格**或****tab**键**来对文字进行排列。 5. **使用 ****换行符** 或 ****tab**键**来对文字进行排列。 6. **使用 ****空格** 或****tab**键**来对文字进行排列。 **注意:** * 排版时应该保持简洁的排版,不要过于复杂或乱动。 * 排版时应该保持一致的排版格式,不要出现乱调。 * 排版时应该保持清晰的排版,以便易于理解。

正文

https://zhuanlan.zhihu.com/p/554441955

 

一、sar简介

sar(System Activity Reporter 系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘 I/O、CPU 效率、内存使用状况、进程活动及 IPC 有关的活动等。

我们可以使用sar命令来获得整个系统性能的报告。这有助于我们定位系统性能的瓶颈,并且有助于我们找出这些烦人的性能问题的解决方法。

Linux 内核维护着一些内部计数器,这些计数器包含了所有的请求及其完成时间和 I/O 块数等信息,sar命令从所有的这些信息中计算出请求的利用率和比例,以便找出瓶颈所在。

sar命令主要的用途是生成某段时间内所有活动的报告,因此必需确保sar命令在适当的时间进行数据采集(而不是在午餐时间或者周末)

二、命令参数

用法: sar [ 选项 ] [ <时间间隔> [ <次数> ] ]
 
主选项和报告:
    -b    I/O 和传输速率信息状况
    -B    分页状况
    -d    块设备状况
    -I { <中断> | SUM | ALL | XALL }
        中断信息状况
    -m    电源管理信息状况
    -n { <关键词> [,...] | ALL }
        网络统计信息
        关键词可以是:
        DEV     网卡
        EDEV     网卡 (错误)
        NFS     NFS 客户端
        NFSD     NFS 服务器
        SOCK     Sockets (套接字)    (v4)
        IP    IP  流          (v4)
        EIP     IP 流       (v4) (错误)
        ICMP     ICMP 流    (v4)
        EICMP     ICMP 流    (v4) (错误)
        TCP     TCP 流  (v4)
        ETCP     TCP 流  (v4) (错误)
        UDP     UDP 流  (v4)
        SOCK6     Sockets (套接字)    (v6)
        IP6     IP 流       (v6)
        EIP6     IP 流       (v6) (错误)
        ICMP6     ICMP 流 (v6)
        EICMP6 ICMP 流 (v6) (错误)
        UDP6    UDP 流       (v6)
    -q    队列长度和平均负载
    -r    内存利用率
    -R    内存状况
    -S    交换空间利用率
    -u [ ALL ]
        CPU 利用率
    -v    Kernel table 状况
    -w    任务创建与系统转换统计信息
    -W    交换信息
    -y    TTY 设备状况
    -o {<文件路径>}
       将命令结果以二进制格式存放在指定文件中

三、常用命令

sar 命令来自于sysstat工具包,如果提示sar命令不存在,需先安装sysstat

3.1 网络统计信息

sar -n <关键词> [ <时间间隔> [ <次数> ] ]

示例:

sar -n DEV 1 5
    
平均时间:     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
平均时间:        lo      2.21      2.21      0.18      0.18      0.00      0.00      0.00
平均时间:      eth0      4.62      3.82      0.37      1.90      0.00      0.00      0.00

命令中 1 5 表示每一秒钟取 1 次值,一共取 5 次。

命令执行后会列出每个网卡这 5 次取值的平均数据,根据实际情况来确定带宽跑满的网卡名称,默认情况下 eth0 为内网网卡,eth1 为外网网卡。

3.2 CPU 利用率

sar -u [ <时间间隔> [ <次数> ] ]

示例:

sar -u 1 3    
Linux 2.6.32-642.13.1.el6.x86_64 (upfor106) 2018年04月25日 _x86_64_ (1 CPU)
    
10时33分08秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
10时33分09秒     all      0.00      0.00      0.00      0.00      0.00    100.00
10时33分10秒     all      0.99      0.00      0.99      0.00      0.00     98.02
10时33分11秒     all      0.00      0.00      0.00      0.00      0.00    100.00
平均时间:        all      0.33      0.00      0.33      0.00      0.00     99.33

命令中 1 3 表示每一秒钟取 1 次值,一共取 3 次。

输出项说明:

CPU:all 表示统计信息为所有 CPU 的平均值。
 
%user:显示在用户级别(application)运行使用 CPU 总时间的百分比
 
%nice:显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比
 
%system:在核心级别(kernel)运行所使用 CPU 总时间的百分比
 
%iowait:显示用于等待I/O操作占用 CPU 总时间的百分比
 
%steal:管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比
 
%idle:显示 CPU 空闲时间占用 CPU 总时间的百分比
 
    1. 若 %iowait 的值过高,表示硬盘存在I/O瓶颈
 
    2. 若 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量
 
    3. 若 %idle 的值持续低于1,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU

3.3 内存利用率

sar -r [ <时间间隔> [ <次数> ] ]

示例:

sar -r 1 3
 
Linux 2.6.32-696.13.2.el6.x86_64 (upfor163) 2018年04月25日 _x86_64_ (2 CPU)
 
10时53分00秒 kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit
10时53分01秒   2027760   2028732     50.01    145492   1243820   1163900     28.69
10时53分02秒   2027620   2028872     50.02    145492   1243820   1163896     28.69
10时53分03秒   2028100   2028392     50.00    145492   1243820   1163900     28.69
平均时间:      2027827   2028665     50.01    145492   1243820   1163899     28.69

输出项说明:

kbmemfree:这个值和 free 命令中的 free 值基本一致,所以它不包括 buffer 和 cache 的空间
 
kbmemused:这个值和 free 命令中的 used 值基本一致,所以它包括 buffer 和 cache 的空间
 
%memused:这个值是 kbmemused 和内存总量(不包括 swap)的一个百分比
 
kbbuffers 和 kbcached:这两个值就是 free 命令中的 buffer 和 cache
 
kbcommit:保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM + swap)
 
%commit:这个值是 kbcommit 与内存总量(包括 swap)的一个百分比

3.4 内存分页状况

sar -B[ <时间间隔> [ <次数> ] ]

示例:

sar -B 1 3
 
Linux 2.6.32-696.13.2.el6.x86_64 (upfor163) 2018年04月25日 _x86_64_ (2 CPU)
 
10时55分41秒  pgpgin/s pgpgout/s   fault/s  majflt/s  pgfree/s pgscank/s pgscand/s pgsteal/s    %vmeff
10时55分42秒      0.00      0.00   5723.76      0.00   3356.44      0.00      0.00      0.00      0.00
10时55分43秒      0.00      0.00   1185.00      0.00    312.00      0.00      0.00      0.00      0.00
10时55分44秒      0.00      0.00     27.00      0.00     56.00      0.00      0.00      0.00      0.00
平均时间:         0.00      0.00   2323.26      0.00   1248.50      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)的百分比
 

3.5 索引节点,文件和其他内核表的状态

sar -v [ <时间间隔> [ <次数> ] ]

示例:

sar -v 1 3
 
Linux 2.6.32-696.13.2.el6.x86_64 (upfor163) 2018年04月25日 _x86_64_ (2 CPU)
 
10时50分29秒 dentunusd   file-nr  inode-nr    pty-nr
10时50分30秒    920045       864     13910         2
10时50分31秒    920045       864     13910         2
10时50分32秒    920045       896     13910         2
平均时间:       920045       875     13910         2

输出项说明:

dentunusd:目录高速缓存中未被使用的条目数量
 
file-nr:文件句柄(file handle)的使用数量
 
inode-nr:索引节点句柄(inode handle)的使用数量
 
pty-nr:使用的 pty 数量

=====未完待续=====

与[转帖]sar -Linux 上全面的系统性能分析工具(1)相似的内容:

[转帖]ubuntu开启sar记录日志

https://www.cnblogs.com/ishmaelwanglin/p/16955227.html 背景 之前一直用CentOS系统,最近换到了ubuntu的,sar日志对分析系统状态和基本性能比较有帮助,发现在ubuntu上默认是不记录sar日志的 安装 apt-get install

[转帖]ubuntu开启sar记录日志

https://www.cnblogs.com/ishmaelwanglin/p/16955227.html 背景 之前一直用CentOS系统,最近换到了ubuntu的,sar日志对分析系统状态和基本性能比较有帮助,发现在ubuntu上默认是不记录sar日志的 安装 apt-get install

[转帖]哪位高人指点下合成孔径雷达和相控阵雷达的区别?

https://www.auak.com/answer/132-214044.htm 1区别相控阵雷达是相对于传统雷达机械扫描的革新也就是完全通过电扫描获得所有信息 合成孔径雷达主要还是算法也就是信号处理上和传统雷达的不同传统雷达是不能成像的而SAR可以通过专门的软件获得目标的成像

[转帖]sar命令查看历史数据

https://www.jianshu.com/p/d1f0f2a99ffe 前言 有的时候,我们要通过对系统的cpu负载等性能数值的查看,来判排查系统产生某种故障(经常死机或者运行速度突然变慢)的原因。但是,简单的top,uptime,w等命令只可以查看当前的负载,而无法查看过去的某一时间段的cp

[转帖]sar命令查看历史数据

https://zhidao.baidu.com/question/336610169339992805.html 2022-06-29 · TA获得超过4965个赞 关注 前言有的时候,我们要通过对系统的cpu负载等性能数值的查看,来判排查系统产生某种故障(经常死机或者运行速度突然变慢)的原因。但

[转帖]Sar的一次使用案例

https://www.jianshu.com/p/b93342d43e13 问题现象 有一台机器,在某个时间点OS类似无响应,造成使用者感觉在该时间点机器应该发生重启,就此问题进行分析。 日志查看 --BMC日志确认机器在该时间点没有发生重启--OS日志在该时间点也没有记录到重启,但日志记录了一些

[转帖]优化命令之sar——最牛命令

目录 一:sar命令概述 1.1sar概述 1.2sar常用选项 1.3常用参数 二:CPU资源监控 2.1整体CPU使用统计(-u) 2.2各个CPU使用统计(-P) 2.3将CPU使用情况保存到文件中 三:内存监控 3.1内存和交换空间监控 3.2内存分页监控 3.3系统交换活动信息监控 四:I

[转帖]使用ksar解析sar监控日志

http://t.zoukankan.com/mikeguan-p-6371278.html sar 是属于sysstat包中的一个工具 安装sysstat包后,默认创建一个/etc/cron.d/sysstat文件,其默认内容为: # run system activity accounting

[转帖]rsar - Extract data from plain-text sar files

sar -A -t -f /tmp/sa11 >/tmp/sar11 https://github.com/ryran/rsar When dealing with sysstat sar data in a sosreport, it's almost always easier to parse

[转帖]宁可信鬼,也不信 iowait 这张嘴!

https://zhuanlan.zhihu.com/p/407333624 原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。 我们经常遇到iowait这个名词,在top命令中,vmstat中,sar命令中,都有它的身影。很多同学按照经验,当看到iowait非常高的时候,