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. python自动化高效办公第二期,带你项目实战【二】{数据可视化、发送邮件(定时任务监控)、python聊天机器人(基于微信、钉钉)}

    相关文章和数据源: python自动化高效办公第二期,带你项目实战[一]{excel数据处理.批量化生成word模板.pdf和ppt等自动化操作} Python自动化办公--Pandas玩转Excel ...

  2. C/C++ 实现简易HTTP服务器

    #include <stdio.h> #include <stdlib.h> #include <process.h> #include <WinSock2. ...

  3. Windows Server ISO原版镜像文件下载(2023年04月)

    Windows Server 2022 (updated April 2023) (x64) - DVD (Chinese-Simplified) 链接:https://pan.baidu.com/s ...

  4. 程序设计实验第一学期期末考试复习用源代码【C语言深度解剖】【超详细注释】

    有关此篇 在这里博主先告诉大家,博主在学校学的C语言课本是<谭浩强的C语言>那这本红色的书. 博主到期末阶段是学到了结构体那一章,下面是博主的复习代码,是一些比较有编程思想的一些源代码,博 ...

  5. .NET Core开发实战(第14课:自定义配置数据源:低成本实现定制化配置方案)--学习笔记

    14 | 自定义配置数据源:低成本实现定制化配置方案 这一节讲解如何定义自己的数据源,来扩展配置框架 扩展步骤 1.实现 IConfigurationSource 2.实现 IConfiguratio ...

  6. Pandas 人口密度案例分析

    from turtle import left import pandas as pd """ 需求: 1.导入文件,查看原始数据 2.将人口数据和各州简称数据进行合并 ...

  7. BZOJ3364 Distance Queries 距离咨询 题解

    原题 简化题意:有一棵 \(n\) 个点的树, \(q\) 组询问,每次询问回答两点间的距离. 令 \(dis[i][j]\) 表示 \(i\) 到 \(j\) 的距离,根节点为 \(rt\) ,则有 ...

  8. BZOJ3156 防御准备 题解

    原题 令 \(S_{i} =\sum\limits_{j=1}^{i}j\) , \(f_{i}\) 为处理到第 \(i\) 个位置放置守卫塔的最小花费. 观察题意,容易得到在\((1 \le j \ ...

  9. 从零开始手写缓存框架(12)redis expire 过期的随机特性详解及实现

    前言 java从零手写实现redis(一)如何实现固定大小的缓存? java从零手写实现redis(二)redis expire 过期原理 java从零手写实现redis(三)内存数据如何重启不丢失? ...

  10. 通过performance_schema获取造成死锁的事务语句(转)

    数据库日常维护中我们经常遇到死锁的问题,由于无法获取造成死锁的事务内执行过的语句,对我们死锁的分析造成很大的困难.但是在MySQL 5.7中我们可以利用performance_schema来获取这些语 ...