【Centos】监控_sar系统性能报告工具

简介

sarSystem Activity Reporter 系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,用于生成指定时间段内的监控报告。
sar可以从多方面对系统的活动进行报告,包括文件的读写情况、系统调用的使用情况、磁盘I/OCPU效率、内存使用状况、进程活动及IPC有关的活动等。

安装

sar命令来自于sysstat工具包,需先安装sysstat

基本用法

sar [选项] [<时间间隔> [<次数>]]

具体参数:
	-b	I/O 和传输速率信息状况
	-B	分页状况
	-d	块设备状况
	-I { <中断> | SUM | ALL | XALL }
		中断信息状况
	-m	电源管理信息状况
	-n { <关键词> [,...] | ALL }
		网络统计信息
		关键词可以是:
		DEV	 网卡
		EDEV	 网卡 (错误)
		NFS	 NFS 客户端
	-q	队列长度和平均负载
	-r	内存利用率
	-R	内存状况
	-S	交换空间利用率
	-u [ ALL ]
		CPU 利用率
	-v	Kernel table 状况
	-w	任务创建与系统转换统计信息
	-W	交换信息
	-y	TTY 设备状况
	-o {<文件路径>}
	   将命令结果以二进制格式存放在指定文件中

环境

  1. CentOS 7.9
  2. Linux 3.10.0-1160.el7.x86_64

常用命令

查看实时负载信息

CPU

在这里插入图片描述

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

内存

在这里插入图片描述

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

IO

IO描述

tps:每秒钟物理设备的 I/O 传输总量
rtps:每秒钟从物理设备读入的数据总量
wtps:每秒钟向物理设备写入的数据总量
bread/s:每秒钟从物理设备读入的数据量,单位为:块/s
bwrtn/s:每秒钟向物理设备写入的数据量,单位为:块/s

队列与负载

在这里插入图片描述

runq-sz:运行队列的长度(等待运行的进程数)
plist-sz:进程列表中进程(processes)和线程(threads)的数量
ldavg-1:最后1分钟的系统平均负载(System load average)
ldavg-5:过去5分钟的系统平均负载
ldavg-15:过去15分钟的系统平均负载
blocked: 当前被阻塞的任务数量,等待IO完成

历史数据统计

日志位置

实际生产中,如果服务器没有专门的资源监控措施,可以使用sar来记录系统实时的资源使用状态,便于了解系统整体状态,同时这也是评估硬件资源是否充足的重要依据。每天的日志数据放入目录/var/log/sa/,此目录下的二进制文件saXX代表每个月XX号生成的统计文件。默认监控频率是10min

具体用法:
sar -f /var/log/sa/saXX [-r/-b/-u] [ > tmp.txt]


[root@vm1 sa]# sar  -f  /var/log/sa/sa04 -r
Linux 3.10.0-1160.el7.x86_64 (vm1.bd) 	2021年12月04日 	_x86_64_	(4 CPU)

11时17分00秒       LINUX RESTART
11时20分41秒       LINUX RESTART

...

19时30分01秒   2398628   1481332     38.18      1080    637336   3936224     65.85    633220    485700         4
19时40分01秒   2394552   1485408     38.28      1080    641752   3936224     65.85    635232    488120         4
平均时间:   2428873   1451087     37.40      1080    628965   3924059     65.65    617622    482549         6
[root@vm1 sa]#

默认采集频率

/etc/cron.d/sysstat文件设置了sar采集数据的具体工作策略。

[root@vm1 sa]# 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
[root@vm1 sa]#
  1. 每隔10min执行一次 /usr/lib/sa/sa1 1 1 命令,将信息写入文件 /var/log/sa/saXX
  2. 每天23:53执行一次 /usr/lib/sa/sa2 -A 命令,将当天的汇总信息写入文件 /var/log/sa/saXX

日志采集程序

这里涉及到的三个负责数据采集具体任务的三个程序如下

[root@vm1 sa]# pwd
/usr/lib64/sa
[root@vm1 sa]# ll
总用量 92
-rwxr-xr-x. 1 root root  1793 41 2020 sa1
-rwxr-xr-x. 1 root root  2138 41 2020 sa2
-rwxr-xr-x. 1 root root 85824 41 2020 sadc
[root@vm1 sa]#
  1. sa1程序收集并存储每天系统实时动态信息到一个二进制的文件中。
  2. sa2程序采集每天信息并做汇总,例如计算平均值。
  3. sadc程序暂未深入了解。

自定义监控频率

默认监控频率是10min,可以根据需要修改/etc/cron.d/sysstat中的定时任务频率。但是笔者希望监控频率是秒级,因此需要自定义开发。

cat /data/tmp/sarSum.sh

#/bin/sh

step=1 #间隔的秒数,不能大于60
for (( i = 0; i < 60; i=(i+step) ));
do
  /usr/lib64/sa/sa1 1 1
  sleep $step
done
crontab  -e

# frequency is 1 minute
* * * * * sh /data/tmp/sarSum.sh

日志文件生命周期

默认的saXX文件生命周期是28d,用户可以根据需要修改,以下两个文件中的修改HISTORY修改成期望值即可。

  1. /usr/lib64/sa/sa2文件修改HISTORY
    在这里插入图片描述
  2. sysstat文件修改HISTORY
    在这里插入图片描述

引用

  • https://shockerli.net/post/linux-tool-sar/
  • https://www.cnblogs.com/ceshi2016/p/8946192.html
  • https://www.cnblogs.com/lanbojini/p/14633094.html
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值