linux系统查历史cpu使用数据(使用sar 查询cpu和网络占用最近1个月历史数据)。

一  sar 指令介绍  

          在 Linux 系统中,sar 是 System Activity Reporter 的缩写,是一个用于收集、报告和保存系统活动信息的工具。它是 sysstat 软件包的一部分,提供了丰富的系统性能数据,包括 CPU、内存、网络、磁盘等使用情况,sar 命令不仅可以实时地显示系统性能,最重要的还可以从历史数据文件中读取并显示过去的数据

二  sar 使用

查看系统是否安装有sar,目前我所使用的阿里云,电信云,华为云,好像所有云服务器都安装有,而且也是保存了一个月的记录。

 执行sar 默认会显示当前状态的数据如下图:

sar

 

sar 历史数据通常被保存在 /var/log/sa/ 目录下,以特定的命名模式存储,如下图:

通常每天会生成一个文件,每个文件包含了当天每隔一段时间(默认为10分钟)采集的系统数据。

文件名称说明:

  • sa:所有的文件以sa作前缀。
  • 数字:紧跟在 sa 后面的两位数字代表了月份中的日期。例如,sa01 对应的是当月的第1天,sa02 对应的是当月的第2天,一共有30个文件也就刚好一个月,所以只能保存最近一个月的数据,也就说只能查看最近一个月的数据。

看某个特定日期的 sar 历史数据时,可以使用以下命令格式:

sar -f /var/log/sa/sa01 -参数

-参数:

  • 若要查看 CPU 使用情况,可以使用 -u 参数。
  • 若要查看内存使用情况,可以使用 -r 参数。
  • 若要查看磁盘 I/O,可以使用 -d 参数。
  • 若要查看网络 I/O,可以使用 -n 参数。

使用示例:

查看上个月1号的历史记录

#进入日记目录
cd /var/log/sa#查看上月1号的文件的 cpu使用情况
sar -f sa01 -u

 执行后如下图:

从上图可以看出,sar是每10分钟保存一次数据的,对于很多时候用来分析服务器状态也足够了。上图1号的数据,用户使用cpu使用保持在1.5左右,空闲率持续97% ,cpu占用曲线整体很平衡。

再查2号的cpu使用数据就发现问题了,4点开始cpu占用突然升高且持续到4点30分,如下图:

sar -f sa02 -u

这里候我们可以结合这以上这个时间点是分析我们的项目日记还有网络流量,数据库日记。往往很快可以找到问题。 

三  pidstat 使用

 上面的sar只可以定位时间,无法定位哪个进程使用cpu,如果还能找到问题可以使用pidstat进一步定位进程,是哪个进程占用这么高。

执行 pidstat,如下图:

pidstat

数据量有点多,我们只要占用最高那10条记录即可:

pidstat -r | sort -k 8 -r -n | head -n 11

 执行后如下图:

我们就以这个为基础通过定时任务去运行记录进程占用高的数据:

crontab -e*/5 * * * * /usr/bin/pidstat -r | sort -k 8 -r -n | head -n 11 >> /var/log/pidstat.log

  一个定时器每5分钟记录一次最高的进程数据 ,创建成功,如下图:

查看定时任务:

crontab -l

定时任务运行后,查看占用日记如下:


 这里每隔5分钟记录一次,这里可以根据问题发生的时间自己改写。这样可以解决查看历史cpu占用率的问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/875100.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jdk有哪些版本

JDK(Java Development Kit)是Java编程语言的软件开发工具包,其版本随着Java语言的不断发展而更新。以下是JDK的一些主要版本及其相关信息: JDK 8(发布于2014年3月):引入了一系列新功能,如Lambda表达式、函数式接口、Stream API和新的日期/时间API等。是Java历史上一个…

SQL中的LEFT JOIN、RIGHT JOIN和INNER JOIN

在SQL中,JOIN操作是连接两个或多个数据库表,并根据两个表之间的共同列(通常是主键和外键)返回数据的重要方法。其中,LEFT JOIN(左连接)、RIGHT JOIN(右连接)和INNER JOIN…

《JavaEE篇》--多线程(2)

《JavaEE篇》--多线程(1) 线程安全 线程不安全 我们先来观察一个线程不安全的案例: public class Demo {private static int count 0;public static void main(String[] args) throws InterruptedException {Thread t1 new Thread(() -> {//让count自增5W次…

HarmonyOS网络请求的简单用法,HttpUtil简单封装

请求网络获取数据 点击按钮发送一个post请求,发送一条string由于此处的返回result.data本身就是一个string,因此不需要转换类型 Button(请求网络).margin({ top: 10 }).fontSize(24).fontWeight(FontWeight.Bold).onClick(() > {httpRequestPost(http…

JVM 内存结构、垃圾回收机制与并发容器

目录 一、JVM 内存结构 1. 程序计数器(Program Counter Register): 2. Java 虚拟机栈(JVM Stack): 3.本地方法栈(Native Method Stack): 4.堆(Heap&#xff…

Android笔试面试题AI答之控件Views(6)

答案来着文心一言,仅供参考 目录 1.简述什么是RemoteViews?使用场景有哪些?RemoteViews的特性使用场景总结 2.获取View宽高的几种方法?1. 在onWindowFocusChanged方法中获取2. 使用ViewTreeObserver.OnGlobalLayoutListener3. 使用ViewTreeObserver.OnPreDrawLi…

风格迁移开发记录(DCT-Net)

1.DCT-Net部署 阿里旗下的 modelscope社区,丰富的开源风格迁移算法模型 DCT-Net GitHub链接 git clone https://github.com/menyifang/DCT-Net.git cd DCT-Netpython run_sdk.py下载不同风格的模型如下图每个文件夹代表一种风格,有cartoon_bg.pb, car…

C++STL详解(一)——String接口详解(上)!!!

目录 一.string类介绍 二.string类的构造赋值 2.1string类的拷贝和构造函数 2.2深拷贝 三.string类的插入 3.1push_back 3.2append 3.3操作符 3.4insert 四.string的删除 4.1pop_back 4.2erase 五.string的查找 5.1find 5.2rfind 六.string的比较 6.1compare函…

独家|二十年国货羊奶粉老品牌发力成人奶粉,瞄准低GI、特医食品

前言 中国羊奶看陕西。 作为陕西省农业产业化重点企业以及陕西省专精特新企业,成立于2004年的羊奶粉品牌雅泰乳业正在不断进行深入布局。 雅泰乳业成人粉部门销售总监于维涛近日向AgeFood表示,雅泰成人奶粉业务主要分为两部分。一部分是以雅泰牧歌、龙…

深入浅出WebRTC—Pacer

平滑发包(Pacer)是 WebRTC 实现高质量实时通信不可或缺的一部分。在视频通信中,单帧视频可能包含大量的数据,如果未经控制地立即发送,可能瞬间对网络造成巨大压力。Pacer 能够根据网络条件动态调整发送速率&#xff0c…

SpringBoot事务管理、任务调度、Mail整合。

一.Spring Boot中的事务管理 编程式事务 : 在代码中硬编码(不推荐使用):通过 TransactionTemplate 或者 TransactionManager 手动管理事务,实际应用中很少使用,用于理解Spring 事务管理。 声明式事务:在 XML 配置文件或者基于注解 Transactional(推荐使…

Java实现汉字转拼音工具类的编写与应用

前言 在处理中文数据时,经常需要将汉字转换为拼音,无论是为了搜索优化、数据分析还是提升用户体验。本文将详细介绍如何编写一个实用的Java工具类来实现这一功能,并通过一个完整的示例来展示其使用方法。我们将使用Apache Commons Lang库中的…

缓慢变化维

缓慢变化维 缓慢变化维(Slowly Changing Dimensions,简称SCD)是数据仓库中的一个重要概念,用于处理维度表中数据随时间发生的变化。以下是一个具体的例子来描述缓慢变化维: 假设我们有一个销售数据仓库,其…

AWS全服务历史年表:发布日期、GA和服务概述一览(四)

我一直在尝试从各种角度撰写关于Amazon Web Services(AWS)的信息和魅力。由于我喜欢技术历史,这次我总结了AWS服务发布的历史年表。 虽然AWS官方也通过“Whats New”发布了官方公告,但我一直希望能有一篇文章将公告日期、GA日期&…

python库(14):Arrow库简化时间处理

1 Arrow简介 Arrow 是一个被称为程序员的时间处理利器的 Python 库。 从诞生起,它就是为了填补 Python 的 datetime 类型的功能空白而生的。为程序员提供了一种更简单、更直观的方式来处理日期和时间。 2 安装Arrow库 pip install arrow -i https://pypi.tuna.ts…

什么是设备运维管理系统?有什么作用?(6款设备运维管理系统推荐)

一、什么是设备运维管理系统? 设备运维管理系统是一种集成了监控、管理、维护和优化设备性能的软件平台。它旨在通过自动化的手段,提高设备运行的可靠性和效率,降低运维成本,并优化资源利用。 设备运维管理系统能够实时监控设备…

【1】Python机器学习之基础概念

1、什么是机器学习 最早的机器学习应用——垃圾邮件分辨 传统的计算机解决问题思路: 编写规则,定义“垃圾邮件”,让计算机执行对于很多问题,规则很难定义规则不断变化 机器学习在图像识别领域的重要应用: 人脸识别…

带您详细了解安全漏洞的产生和防护

什么是漏洞? 漏洞是 IT、网络、云、Web 或移动应用程序系统中的弱点或缺陷,可能使其容易受到成功的外部攻击。攻击者经常试图寻找网络安全中的各种类型的漏洞来组合和利用系统。 一些最常见的漏洞: 1.SQL注入 注入诸如 SQL 查询之类的小代…

c# Math.Round()四舍五入取整数

可以使用Math.Round()方法进行四舍五入取整数的操作。 以下是使用Math.Round()方法的实现方法: 将浮点数直接作为参数传递给Math.Round()方法,并指定要保留的小数位数。此方法将返回最接近的整数值。 double number 3.89; int roundedNumber (int)Mat…

react-scripts 这个包的作用是什么

react-scripts 是 Create React App 项目中的一个核心包,它的主要作用包括: 封装和简化项目配置。react-scripts 封装了 Webpack、Babel、ESLint 等工具的配置,使开发者无需手动配置这些复杂的构建工具[1][3]. 提供开发和构建脚本。它包含了 start、bui…