Linux性能监控(一)-sar

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的更多相关文章
- Linux性能监控命令——sar
介绍 sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况.系统调用的 ...
- 【性能测试】Linux性能监控命令——sar详解
转载:https://blog.csdn.net/mig_davidli/article/details/52149993 sar命令可以从文件的读写情况.系统调用的使用情况.磁盘I/O.CPU效率. ...
- Linux性能监控
转自:http://blog.csdn.net/chosen0ne/article/details/8200737 linux性能监控,就是要监控系统的各个子系统是否正常.linux主要的子系统包括: ...
- linux性能监控 -CPU、Memory、IO、Network等指标的讲解
[操作系统-linux]linux性能监控 -CPU.Memory.IO.Network等指标的讲解(转) 一.CPU 1.良好状态指标 CPU利用率:User Time <= 70%,Syst ...
- Linux性能监控与分析之--- CPU
Linux性能监控与分析之--- CPU 望月成三人关注 2016.07.25 18:16:12字数 1,576阅读 2,837 CPU性能指标 用户进程使用CPU的比率 系统进程使用CPU的比率 W ...
- Linux 性能监控之CPU&内存&I/O监控Shell脚本2
Linux 性能监控之CPU&内存&I/O监控Shell脚本2 by:授客 QQ:1033553122 思路: 捕获数据->停止捕获数据->提取数据 备注:一些命令的输 ...
- Linux 性能监控之CPU&内存&I/O监控Shell脚本1
Linux 性能监控之CPU&内存&I/O监控Shell脚本1 by:授客 QQ:1033553122 #!/bin/bash # 获取要监控的本地服务器IP地址 IP=`if ...
- Linux性能监控分析命令(二)—sar命令介绍
性能监控分析的命令包括如下: 1.vmstat 2.sar 3.iostat 4.top 5.free 6.uptime 7.netstat 8.ps 9.strace 10.lsof ======= ...
- 使用vmstat和iostat命令进行Linux性能监控【转】
转自:https://linux.cn/article-4024-1.html 这是我们正在进行的Linux命令和性能监控系列的一部分.vmstat和iostat两个命令都适用于所有主要的类unix系 ...
- vmstat和iostat命令进行Linux性能监控
这是我们正在进行的Linux命令和性能监控系列的一部分.vmstat和iostat两个命令都适用于所有主要的类unix系统(Linux/unix/FreeBSD/Solaris). 如果vmstat和 ...
随机推荐
- 驱动开发:WinDBG 常用调试命令总结
Windbg是Microsoft公司免费调试器调试集合中的GUI的调试器,支持Source和Assembly两种模式的调试.Windbg不仅可以调试应用程序,还可以进行Kernel Debug.结合M ...
- SpringCloud之Ribbon负载均衡
上述案例中,我们启动了一个msg-service,然后通过DiscoveryClient来获取服务实例信息,然后获取ip和端口来访问. 但是实际环境中,我们往往会开启很多个user-service的集 ...
- PHP使用cookie做浏览历史记录
/** * @param $article文章详情 * @param int $count记录数 * tp须引入cookie类 */ function addHistory($article,$cou ...
- 编译型,解释型,java
编译型:将全部程序翻译为计算机能理解执行的代码 解释型:边运行程序边翻译,解释一点运行一点 java先编译再解释,将java文件编译为class文件,class文件再通过解释器翻译给操作系统运行
- docker 安装 jenkins
最近在做一个智能床垫的项目,为了方便测试上周客户新给了一台华为云服务器.要求在一天内把之前阿里云服务器的环境以及java应用迁到新服务器.所以,我就需要在新服务器安装redis,mysql,jenki ...
- Java并发(七)----线程sleep、yield、线程优先级
1.sleep 与 yield sleep 调用 sleep 会让当前线程从 Running 进入 Timed Waiting 状态(阻塞) 其它线程可以使用 interrupt 方法打断正在睡眠的线 ...
- 洛谷P1923 求第K小的数 研讨关于输入输出效率的问题(scanf and cin ,printf and cout)
最简单的思想就是将这n个数从小到大排序,然后直接输出下标为K的数,不用想肯定会超时,三个测试点过了,另外两个超时. 那么我想的就是,既然全排序会超时,有没有什么方法可以不用全排序也可以拿出第K小的数呢 ...
- JDK + Tomcat 安装 + 制作自定义镜像【第 2.1 篇 Tomcat 日志满问题】
更好的方法,跨平台(不依赖平台,比如阿里云的后台)的方法是:spring boot 定时任务,直接在程序里写定时清除日志的任务:以后再说: ============================== ...
- ASP.NET Core分布式项目实战(Consent视图制作)--学习笔记
任务19:Consent视图制作 按照上一节 Consent 的思路 在 mvcCookieAuthSample 项目的 Controllers 文件夹下新建一个 ConsentController ...
- .NET Core开发实战(第20课:结构化日志组件Serilog:记录对查询分析友好的日志)--学习笔记
20 | 结构化日志组件Serilog:记录对查询分析友好的日志 之前讲解的日志框架,记录的日志都是文本,而且是非结构化的,这样一串串文本实际上不利于我们去做分析 结构化的日志它的好处就显而易见,它可 ...