IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux性能分析利器sar -> 正文阅读

[系统运维]Linux性能分析利器sar

一、sar常用性能分析场景

1.1 CPU资源分析

1、CPU使用率分析

-- 查看所有全局的CPU使用信息, ALL表示输出更详细指标
# sar -u ALL  1 3
Linux 3.10.0-1127.el7.x86_64 (mdw) 	2021年07月13日 	_x86_64_	(4 CPU)

10时41分21秒     CPU      %usr     %nice      %sys   %iowait    %steal      %irq     %soft    %guest    %gnice     %idle
10时41分22秒     all      4.51      0.00     22.56      0.00      0.00      0.00      0.00      0.00      0.00     72.93
10时41分23秒     all      4.00      0.00     23.50      0.00      0.00      0.00      0.25      0.00      0.00     72.25
10时41分24秒     all      4.76      0.00     23.06      0.00      0.00      0.00      0.00      0.00      0.00     72.18
平均时间:     all      4.42      0.00     23.04      0.00      0.00      0.00      0.08      0.00      0.00     72.45

-- 查看指定CPU的资源使用信息
# sar -P 1  1 3
Linux 3.10.0-1127.el7.x86_64 (mdw) 	2021年07月13日 	_x86_64_	(4 CPU)

10时43分53秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
10时43分54秒       1      1.00      0.00      1.00      0.00      0.00     98.00
10时43分55秒       1      0.00      0.00      0.00      0.00      0.00    100.00
10时43分56秒       1      0.00      0.00      7.07      0.00      0.00     92.93
平均时间:       1      0.34      0.00      2.68      0.00      0.00     96.98

  • %usr : 用户态CPU使用率
  • %nice : 低优先级用户态CPU使用率
  • %sys : 内核态CPU使用率
  • %iowait : 等待IO的CPU使用率
  • %steal : 当系统运行在虚拟机中的时候,被其他虚拟机占用的CPU使用率
  • %irq : 处理硬中断CPU使用率
  • %soft : 处理软中断CPU使用率
  • %guest : 运行虚拟机的CPU使用率
  • %gnice : 以低优先级运行虚拟机的CPU使用率
  • %idle : 空闲CPU使用率

2、CPU队列、整体负载分析

-- 查看CPU队列、系统整体负载信息
# sar -q  1 3
Linux 3.10.0-1127.el7.x86_64 (mdw) 	2021年07月13日 	_x86_64_	(4 CPU)

10时38分44秒   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
10时38分45秒         1       247      0.09      0.11      0.09         0
10时38分46秒         1       247      0.09      0.11      0.09         0
10时38分47秒         1       247      0.09      0.11      0.09         0
平均时间:         1       247      0.09      0.11      0.09         0
  • runq-sz : 运行队列的长度(等待运行的进程数);
  • plist-sz : 进程列表中进程(processes)和线程(threads)的数量,很多线程可能在休眠中
  • ldavg-1 : 最近1分钟的系统平均负载(单位时间内,系统处于可运行状态和不可终端状态的平均进程数)
  • ldavg-5 : 最近5分钟的系统平均负载
  • ldavg-15 : 最近15分钟的系统平均负载
  • blocked : 因等待I/O而阻塞的队列数

1.2 磁盘资源

1、磁盘IO以及传输速率信息

-- 查看磁盘IO以及读写速率信息
# sar -b 1 3
Linux 3.10.0-1127.el7.x86_64 (mdw) 	2021年07月13日 	_x86_64_	(4 CPU)

11时00分17秒       tps      rtps      wtps   bread/s   bwrtn/s
11时00分18秒    369.00      0.00    369.00      0.00 367616.00
11时00分19秒    369.00      0.00    369.00      0.00 368008.00
11时00分20秒    373.00      0.00    373.00      0.00 370648.00
平均时间:    370.33      0.00    370.33      0.00 368757.33
  • tps:每秒发送给物理设备的IO请求数,多个逻辑请求会被合并为一个I/O磁盘请求
  • rtps:每秒发送给物理设备的IO读请求数
  • wtps:每秒发送给物理设备的IO写请求数
  • bread/s:每秒从物理设备读取的数据块数,一个数据块即一个扇区,为512kb
  • bwrtn/s:每秒写入到物理设备的数据块数

2、输出每个磁盘设备的磁盘读写性能信息

-- 查看每个磁盘设备的磁盘读写性能
# sar -d -p  1 3
Linux 3.10.0-1127.el7.x86_64 (mdw) 	2021年07月13日 	_x86_64_	(4 CPU)

11时11分11秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
11时11分12秒       vda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11时11分12秒       vdb    374.00      0.00 372480.00    995.94      0.38      1.02      0.21      7.70
11时11分12秒       vdc      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11时11分12秒       sda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11时11分12秒 centos-root      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

11时11分12秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
11时11分13秒       vda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11时11分13秒       vdb    374.00      0.00 372280.00    995.40      0.47      1.25      0.19      7.00
11时11分13秒       vdc      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11时11分13秒       sda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11时11分13秒 centos-root      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

11时11分13秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
11时11分14秒       vda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11时11分14秒       vdb    374.00      0.00 371824.00    994.18      0.48      1.26      0.18      6.80
11时11分14秒       vdc      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11时11分14秒       sda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11时11分14秒 centos-root      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
平均时间:       vda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间:       vdb    374.00      0.00 372194.67    995.17      0.44      1.18      0.19      7.17
平均时间:       vdc      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间:       sda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间: centos-root      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
  • DEV : 磁盘设备名称,若直接使用-d则显示为设备主编号-小编号,若使用-p可显示设备名
  • tps : 每秒发送给磁盘设备的IO请求数,多个逻辑请求会被合并为一个I/O磁盘请求
  • rd_sec/s : 每秒从磁盘设备读次数(每次读取读一个扇区512kb)
  • wr_sec/s : 每秒发送磁盘设备写次数
  • avgrq-sz : 平均每次设备I/O操作的数据大小(扇区)
  • avgqu-sz : 平均请求队列长度
  • await : 从请求磁盘操作到系统完成处理,每次请求的平均消耗时间(包括请求队列等待时间和设备实际处理时间)
  • svctm : 处理IO请求所需的平均时间(不包括等待请求队列时间)
  • %util : 磁盘处理I/O请求时间百分比,比率越大,说明越饱和。但是由于可能存在并行IO,100%并不一定说明磁盘IO饱和

1.3 内存信息分析

1、内存使用分析

-- 查看内存使用信息
# sar -r  1 2
Linux 3.10.0-1127.el7.x86_64 (mdw) 	2021年07月13日 	_x86_64_	(4 CPU)

11时41分07秒 kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
11时41分08秒   1778312   2081840     53.93         0   1423284   3155312     81.74   1571408    335092     70128
11时41分09秒   1608268   2251884     58.34         0   1588540   3155312     81.74   1736780    335096     40228
平均时间:   1693290   2166862     56.13         0   1505912   3155312     81.74   1654094    335094     55178
  • kbmemfree : 可用内存大小(单位:kb)
  • kbmemused : 内存使用大小,不包括buffer和cache内存使用
  • %memused : 内存使用率
  • kbbuffers : buffer的内存使用大小
  • kbcached : cache的内存使用大小
  • kbcommit : 当前工作负载所需内存使用大小,为保证不OOM而评估需要的内存大小(RAM + swap)
  • %commit : 当前工作负载内存使用率(RAM+swap),该参数数值可能会大于100%,因为内核通常会过度提交内存

2、内存回收信息

-- 查看内存回收信息
# sar -B  1 2
Linux 3.10.0-1127.el7.x86_64 (mdw) 	2021年07月13日 	_x86_64_	(4 CPU)

11时41分31秒  pgpgin/s pgpgout/s   fault/s  majflt/s  pgfree/s pgscank/s pgscand/s pgsteal/s    %vmeff
11时41分32秒      0.00 163252.00     22.00      0.00  28193.00  27355.00      0.00  27355.00    100.00
11时41分33秒   1008.00 185108.00     29.00      0.00  55966.00  54724.00      0.00  54567.00     99.71
平均时间:    504.00 174180.00     25.50      0.00  42079.50  41039.50      0.00  40961.00     99.81
  • pgpgin/s : 每秒从磁盘或swap置换到内存的字节数(KB)
  • pgpgout/s : 每秒从内存置换到磁盘或swap的字节数(KB)
  • fault/s : 系统每秒产生的缺页数,即主缺页与次缺页之和(major + minor)
  • majflt/s : 系统每秒钟产生的主缺页数
  • pgfree/s : 每秒被放入空闲队列中的页个数
  • pgscank/s : 每秒被kswapd扫描的页个数
  • pgscand/s : 每秒直接被扫描的页个数
  • pgsteal/s : 为满足内存需要,每秒钟从缓存中回收的页的个数(pagecache and swapcache),该参数持续比较大的情况下说明内存存在一定的瓶颈
  • %vmeff : 页回收效率( = pgsteal / pgscan)。如果该参数接近100%,说明非活跃list的页面在不断的被复用;如果该参数过小,说明此时内存回收存在一定的压力,需要考虑是否存在内存瓶颈;如果pgscan扫描页个数为0,那么该参数为0

3、swap信息

# sar -W  1 2
Linux 3.10.0-1127.el7.x86_64 (mdw) 	2021年07月13日 	_x86_64_	(4 CPU)

11时42分30秒  pswpin/s pswpout/s
11时42分31秒      0.00      0.00
11时42分32秒      0.00      0.00
平均时间:      0.00      0.00
  • pswpin/s : 每秒从交换分区到系统的交换页面(swap page)数量
  • pswpout/s : 每秒从系统交换到swap的交换页面(swap page)的数量

1.4 网络

1、查看网络流入流出信息

# sar -n DEV 1 2
Linux 3.10.0-1127.el7.x86_64 (mdw) 	2021年07月13日 	_x86_64_	(4 CPU)

11时43分35秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
11时43分36秒      eth0      2.00      1.00      0.12      0.17      0.00      0.00      0.00
11时43分36秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00

11时43分36秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
11时43分37秒      eth0      1.00      1.00      0.06      0.11      0.00      0.00      0.00
11时43分37秒        lo      2.00      2.00      0.10      0.10      0.00      0.00      0.00

平均时间:     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
平均时间:      eth0      1.50      1.00      0.09      0.14      0.00      0.00      0.00
平均时间:        lo      1.00      1.00      0.05      0.05      0.00      0.00      0.00
  • IFACE : 网络设备接口名称
  • rxpck/s : 每秒接收的数据包数
  • txpck/s : 每秒发送的数据包数
  • rxkB/s : 每秒接收的字节数
  • txkB/s : 每秒发送的字节数
  • rxcmp/s : 每秒接收的压缩数据包
  • txcmp/s : 每秒发送的压缩数据包
  • rxmcst/s : 每秒钟接收的组播报文数

2、网络错误统计

# sar -n EDEV 1 2
Linux 3.10.0-1127.el7.x86_64 (mdw) 	2021年07月13日 	_x86_64_	(4 CPU)

11时44分11秒     IFACE   rxerr/s   txerr/s    coll/s  rxdrop/s  txdrop/s  txcarr/s  rxfram/s  rxfifo/s  txfifo/s
11时44分12秒      eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11时44分12秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

11时44分12秒     IFACE   rxerr/s   txerr/s    coll/s  rxdrop/s  txdrop/s  txcarr/s  rxfram/s  rxfifo/s  txfifo/s
11时44分13秒      eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11时44分13秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

平均时间:     IFACE   rxerr/s   txerr/s    coll/s  rxdrop/s  txdrop/s  txcarr/s  rxfram/s  rxfifo/s  txfifo/s
平均时间:      eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间:        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
  • IFACE : 网络设备接口名称
  • rxerr/s : 每秒接收的坏数据包数
  • txerr/s : 每秒发送的坏数据包数
  • coll/s : 每秒发送数据包时发生的冲突数
  • rxdrop/s : 因Linux buffer打满,每秒丢弃的接收数据包数
  • txdrop/s : 因Linux buffer打满,每秒丢弃的发送数据包数
  • txcarr/s : 每秒发送数据包时发生的载波错误数
  • rxfram/s : 每秒在接收的数据包上发生的帧对齐错误数
  • rxfifo/s : 每秒在接收的数据包上发生的FIFO超限错误数
  • txfifo/s : 每秒在发送的数据包上发生的FIFO超限错误数

3、查看套接字相关信息

# sar -n SOCK 1 2
Linux 3.10.0-1127.el7.x86_64 (mdw) 	2021年07月13日 	_x86_64_	(4 CPU)

11时44分35秒    totsck    tcpsck    udpsck    rawsck   ip-frag    tcp-tw
11时44分36秒       591        10         2         0         0         0
11时44分37秒       591        10         2         0         0         0
平均时间:       591        10         2         0         0         0
  • totsck : 使用的套接字总数量
  • tcpsck : 使用的TCP套接字数量
  • udpsck : 使用的UDP套接字数量
  • rawsck : 使用的RAW套接字数量
  • ip-frag : 当前的IP分片的数目
  • tcp-tw : TCP套接字中处于TIME-WAIT状态的连接数量

二、sar周期性监控采集

当服务器安装sysstat工具后,sar默认会创建一个crontab任务以用来每十分钟进行一次监控采集,按天形成一份监控采集日志。其监控采集数据存储在/var/log/sa下,具体的crontab任务可查看/etc/cron.d/sysstat。

对于一个运维工作者,对我们业务服务器做好监控是一个基础工作,但是工作中我们也会碰到一些客户环境,他们的服务器没有做任何的监控。我们无法很细粒度的从监控中推断故障时间段服务器发生了什么。此时sar工具可能就是我们的一颗救命稻草,sar工具安装后默认每10分钟进行一次监控采集,虽然粒度很粗,但是也一定程度上帮助我们推断历史故障时间段是否存在一定的资源瓶颈。

1、sar默认crontab任务,需要的情况下我们也可以通过修改crontab任务调度周期来获取每天更细粒度的一个监控采集日志

# cat /etc/cron.d/sysstat
# Run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib64/sa/sa1 1 1
# 0 * * * * root /usr/lib64/sa/sa1 600 6 &
# Generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib64/sa/sa2 -A

2、如何利用sar采集日志进行分析

针对服务器CPU、磁盘、内存、网络的分析参数如第一章节讲解一样,对不同的资源分析使用不同的参数对sar日志文件进行解析即可,解析历史文件时通过-f指定我们需要查看的日志文件。

-- 查看07-12日sar日志文件的CPU资源监控采集信息
# sar -u ALL -f sa12
Linux 3.10.0-1127.el7.x86_64 (mdw) 	2021年07月12日 	_x86_64_	(4 CPU)

00时00分01秒     CPU      %usr     %nice      %sys   %iowait    %steal      %irq     %soft    %guest    %gnice     %idle
00时10分01秒     all      0.63      0.00      1.39      0.01      0.01      0.00      0.00      0.00      0.00     97.96
00时20分01秒     all      0.18      0.00      0.19      0.00      0.00      0.00      0.00      0.00      0.00     99.62
00时30分01秒     all      0.17      0.00      0.19      0.00      0.01      0.00      0.00      0.00      0.00     99.63
00时40分01秒     all      0.83      0.00      2.32      0.00      0.01      0.00      0.00      0.00      0.00     96.82
00时50分01秒     all      0.17      0.00      0.18      0.00      0.00      0.00      0.00      0.00      0.00     99.64
01时00分02秒     all      0.19      0.00      0.18      0.00      0.00      0.00      0.00      0.00      0.00     99.63
01时10分01秒     all      0.31      0.00      0.45      0.00      0.01      0.00      0.00      0.00      0.00     99.23
01时20分01秒     all      0.18      0.00      0.19      0.00      0.01      0.00      0.00      0.00      0.00     99.62
01时30分01秒     all      0.18      0.00      0.18      0.00      0.00      0.00      0.00      0.00      0.00     99.63
01时40分01秒     all      0.23      0.00      0.27      0.01      0.01      0.00      0.00      0.00      0.00     99.48

文章参考:https://cloud.tencent.com/developer/article/1513543

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-07-14 23:19:00  更:2021-07-14 23:19:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 17:29:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码