首页 > 其他分享 >关于sar的学习

关于sar的学习

时间:2023-06-18 13:35:43浏览次数:35  
标签:00 sysstat 学习 v4 关于 v6 sar CPU

关于sar的学习


背景

公司一套基于某冷门Python架构的系统前几天出现异常卡顿.
当时安装的时候必须使用ubuntu系统. 
所以当时默认安装的ubuntu1804, 本来想尝试使用一下sar查看卡顿时期的系统状况
但是发现没有默认安装.
并且最近虽然有node-exporter 以及prometheus 和 grafana 
但是想着文字数字型的应该更好处理一下.

Ubuntu的安装与使用

apt-get install  sysstat

需要注意, ubuntu不会默认开启系统性能日志监控
需要进行如下的设置: 
vim /etc/default/sysstat  文件
ENABLED="true"
然后就会进行记录. 

sudo systemctl enable --now sysstat.service
设置开机启动,并且启动 sysstat

修改定时任务:
注意修改方式如下: 
第一行修改为 每一分钟收集一次
第二行修改为 凌晨前一分钟进行一次监控文件的创建. 
vim /etc/cron.d/sysstat

*/1 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1
59 23 * * * root command -v debian-sa1 > /dev/null && debian-sa1 60 2

然后需要注意一个区别:
归档sysstat记录的日志 两种系统位置是不一样的
centos的路径在/var/log/sa
ubuntu的日志路径在/var/log/sysstat

关于sysstat工具

Sysstat 软件包集成如下工具:

 iostat 工具提供CPU使用率及硬盘吞吐效率的数据;
 mpstat 工具提供单个处理器或多个处理器相关数据;
 sar 工具负责收集、报告并存储系统活跃的信息;
 sa1 工具负责收集并存储每天系统动态信息到一个二进制的文件中。它是通过计划任务工具cron来运行,
     是为sadc所设计的程序前端程序;
 sa2 工具负责把每天的系统活跃性息写入总结性的报告中。它是为sar所设计的前端 ,要通过cron来调用
 sadc 是系统动态数据收集工具,收集的数据被写一个二进制的文件中,它被用作sar工具的后端;
 sadf 显示被sar通过多种格式收集的数据;

进行简要分析的方法

先看帮助信息: 
用法: sar [ 选项 ] [ <时间间隔> [ <次数> ] ]
主选项和报告:
        -b      I/O 和传输速率信息状况
        -B      分页状况
        -d      块设备状况
        -F [ MOUNT ]
                Filesystems statistics
        -H      交换空间利用率
        -I { <中断> | SUM | ALL | XALL }
                中断信息状况
        -m { <关键词> [,...] | ALL }
                电源管理统计信息
                关键字:
                CPU     CPU 频率
                FAN     风扇速度
\t\tFREQ\tCPU 平均时钟频率
                IN      输入电压
                TEMP    设备温度
\t\tUSB\t连接的USB 设备
        -n { <关键词> [,...] | ALL }
                网络统计信息
                关键词可以是:
                DEV     网卡
                EDEV    网卡 (错误)
                NFS     NFS 客户端
                NFSD    NFS 服务器
                SOCK    Sockets (套接字)        (v4)
                IP      IP 流   (v4)
                EIP     IP 流   (v4) (错误)
                ICMP    ICMP 流 (v4)
                EICMP   ICMP 流 (v4) (错误)
                TCP     TCP 流  (v4)
                ETCP    TCP 流  (v4) (错误)
                UDP     UDP 流  (v4)
                SOCK6   Sockets (套接字)        (v6)
                IP6     IP 流   (v6)
                EIP6    IP 流   (v6) (错误)
                ICMP6   ICMP 流 (v6)
                EICMP6  ICMP 流 (v6) (错误)
                UDP6    UDP 流  (v6)
        -q      队列长度和平均负载
        -r      内存利用率
        -R      内存状况
        -S      交换空间利用率
        -u [ ALL ]
                CPU 利用率
        -v      Kernel table 状况
        -w      任务创建与系统转换统计信息
        -W      交换信息
        -y      TTY 设备状况

一个简单的使用验证

验证CPU的使用情况
# 将当天的CPU使用情况转成一个 txt文档 
sar -f /var/log/sysstat/sa13 |grep -v user >13.txt
# 查看CPU使用率大于50%的情况 主要是反馈一个时间节点
awk -F " " '$3>50' 13.txt
# 查看当天CPU的平均使用情况
cat 13.txt  | awk 'Begin{sum=0}{sum+=$3}END{print sum/NR}'
# 查看八点都十点的磁盘读写情况
sar -b -s 08:00:00 -e 10:00:00
# 查看13号 上班时间的CPU总体占用情况

sar -u -s 08:00:00 -e 18:00:00 -f /var/log/sysstat/sa13
# 结果为, 注意这个是查询的ubuntu的日志文件.
17时32分01秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
17时59分01秒     all      1.46      0.00      0.66      0.00      0.00     97.88
Average:        all     13.86      0.00      1.88      0.01      0.00     84.26

# 查看网络情况
sar -n DEV 
# 查看内存信息
sar -R  1 1



标签:00,sysstat,学习,v4,关于,v6,sar,CPU
From: https://blog.51cto.com/u_11529070/6508307

相关文章

  • MySQL数据库页存储结构学习与了解
    MySQL数据库页存储结构学习与了解背景MySQL总是出现奇奇怪怪的问题.想着自己能够学习与提高一下.最近看了很多文档.关于MySQL数据库相关的.想着总结和提炼一下,希望能够给未来的工作提供一下指导.MySQL的存储引擎MySQL有多种存储引擎,主要有:InnoDB:是MySQL的默认存储引擎。......
  • go语言tcp编程学习
    TCP编程1、网络编程分类包括TCPsocket编程(底层基于tcp/ip协议)和b/s结构的http编程(使用的是http协议,但是底层是tcpsocket实现的)资料:尚硅谷的TCP资料(3卷),可以咸鱼找下资料看下2TCPsocket编程windows查看端口密码:netstat-anb;netstat-an服务器端的处理流程监听端口;接受......
  • 基础排列组合学习笔记
    排列组合是数学中一项非常重要、基础的内容,可以解决许多与计数有关的问题。让我们先从最基本的数数学起。前置知识加法原理假设你现在有\(a_0\)个物品,所有物品互不相同。你要从中拿一个物品出来,拿出的物品可能有几种?显然是\(a_0\)种,因为每一个物品互不相同,每一个物品都可......
  • 前端学习C语言 - 数组和字节序
    数组本篇主要介绍:一维二维数组、字符数组、数组名和初始化注意点以及字节序。一维数组初始化有以下几种方式对数组初始化://定义一个有5个元素的数组,未初始化inta[5];//定义一个有5个元素的数组,将第一个初始化0,后面几个元素默认初始化为0inta[5]={0};//定义一个有5个元......
  • 关于Spring Security
    工作原理SpringSecurity所解决的问题就是安全访问控制,而安全访问控制功能其实就是对所有进入系统的请求进行拦截,校验每个请求是否能够访问它所期望的资源。根据前边知识的学习,可以通过Filter或AOP等技术来实现,SpringSecurity对Web资源的保护是靠Filter实现的,所以从这个Filter来......
  • 关于如何使用C++进行编程(不使用数据库的情况下)
    问题描述对于一个长期使用Java连接数据库,实现javaweb编程的软工友友来说,突然在编程任务中不允许连接数据库,就有一点的蒙圈,没有办法,只能去查阅资料啦!问题解决不出意外的话,这次我们就需要使用文件操作来存储数据啦!(然后另外一种方法时json,显然,文件操作更加简单一点、也是更加熟悉......
  • 融合模型stacking14条经验总结和5个成功案例(互联网最全,硬核收藏)_机器学习_人工智能_
    来自Toby老师,《融合模型stacking14条经验总结和5个成功案例》我也看了很多关于融合模型stacking文章,很多作者倾向于赞美融合模型stacking,对其缺点轻描淡写,这容易误导初学者。一叶障目就是这意思。我的很多学员喜欢用融合模型作为论文或专利创新点,这是一个热门技术。最近有个同学在......
  • 关于 SAP Commerce Cloud UI 的混合部署模式
    所谓混合部署模式,意思是CommerceCloudStorefront部分UI通过Spartacusserve,剩下的仍然通过传统的Accelerator来serve.例子:http://localhost:4200/electronics-spa/en/USD/Open-Catalogue/Cameras/Digital-Cameras/c/575通过Spartacus实现http://localhost:4200......
  • 深度学习-算法的创世纪【人工智能】
    深度学习通过训练深层神经网络模型,可以自动学习和提取数据的特征,包括更准确的图像识别、自然语言处理、医学诊断等方面的应用。序言深度学习是一种机器学习方法,其目标是通过模拟人脑神经网络的结构和功能,让机器能够从大量的数据中自动学习和提取特征,从而实现智能化的数据处理和决......
  • 关于uni-app与vue路由配置的不同,不使用uni.navigateTo接口跳转时,使用this.$router.pus
    之前用vue写router路由的时候,先配置一个路由表,然后再将配好的路由push到已有的组件里面,再通过<RouterView></RouterView>方法将每一个调用的路由的内容渲染到父组件要用的位置。今晚我在用uni-app的时候,突然不想用uni-app自己提供的路由跳转方法:uni.navigateTo我想用vue那种路由......