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. MySQL 常见面试题/知识点总结!(2021 最新版)| JavaGuide

    相关阅读: 2.7w字!Java基础面试题/知识点总结!(2021 最新版) 这篇文章之前发过,不过,我最近对其进行了重构完善并且修复了很多小问题.所以,在公号再同步一下! 内容很硬!强烈建议小伙伴们 ...

  2. Visual Studio安装教程、Visual Studio2017软件提供,版本序列号丨编写第一个程序。

    一.安装步骤 1.安装前注意一下自己电脑的IE浏览器是不是10 版本及以上的,如果不是要先升级到10才能安装 Visual Studio2017.打开IE浏览器,点击[设置]接着点击[关于]即可查看. ...

  3. [XXL-JOB] 分布式调度XXL-JOB快速上手

    1.概述 1.1什么是任务调度 我们可以思考一下下面业务场景的解决方案: 某电商平台需要每天上午10点,下午3点,晚上8点发放一批优惠券 某银行系统需要在信用卡到期还款日的前三天进行短信提醒 某财务系 ...

  4. Unity框架中的核心类

    组件:Component 在Unity中,所有的游戏对象都可以挂载组件.组件控制着游戏对象的行为和外观,例如渲染.动画.碰撞检测等. 而Component就是组件的基类,提供了一些通用的方法和属性,例 ...

  5. PCIe Gen 4 SSD主控大盘点:7000MB/s高速时代,到底谁能称王?

    [硬件编年史]自2006年世界上第一款搭载固态硬盘的电脑诞生之后,消费级SSD经过十几年的发展,从一开始的SATA 6Gbps SSD,到坚挺了十年的PCIe Gen 3 SSD,再到PCIe Gen ...

  6. 【算法】【C语言进阶】C语言字符串操作宝藏级别汇总 strtok函数 strstr函数该怎么用?【超详细的使用解释和模拟实现】

    [算法][C语言进阶]C语言字符串操作宝藏级别汇总[超详细的使用解释和模拟实现] 作者: @小小Programmer 这是我的主页:@小小Programmer 在食用这篇博客之前,博主在这里介绍一下其 ...

  7. NC20115 [HNOI2015]菜肴制作

    题目链接 题目 题目描述 知名美食家小 A被邀请至ATM 大酒店,为其品评菜肴. ATM 酒店为小 A 准备了 N 道菜肴,酒店按照为菜肴预估的质量从高到低给予1到N的顺序编号,预估质量最高的菜肴编号 ...

  8. NC50243 小木棍

    题目链接 题目 题目描述 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50.现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度.给出每段小木 ...

  9. 云原生服务网格Istio:原理、实践、架构与源码解析

    华为云原生团队600多页的Istio实战精华总结,云原生服务网格Istio:原理.实践.架构与源码解析的电子书. 图书介绍 <云原生服务网格Istio:原理.实践.架构与源码解析>分为原理 ...

  10. Shiro-00-shiro 概览

    RBAC RBCA RBCA zh_CN Shiro Apache Shiro 是一个强大且易于使用的 Java 安全框架,负责执行身份验证.授权.加密和会话管理. 通过 Shiro 的易于理解的 A ...