[转帖]Sar的一次使用案例
https://www.jianshu.com/p/b93342d43e13
问题现象
有一台机器,在某个时间点OS类似无响应,造成使用者感觉在该时间点机器应该发生重启,就此问题进行分析。
日志查看
--BMC日志确认机器在该时间点没有发生重启
--OS日志在该时间点也没有记录到重启,但日志记录了一些异常,如下所示
Oct 23 12:46:59 localhost kernel: device ens3f1 left promiscuous mode
Oct 23 13:11:32 localhost rsyslogd: imjournal: journal reloaded... [v8.24.0 try http://www.rsyslog.com/e/0 ]
Oct 23 13:11:32 localhost rsyslogd: imjournal: journal reloaded... [v8.24.0 try http://www.rsyslog.com/e/0 ]
Oct 23 13:46:25 localhost kernel: device ens6f1 entered promiscuous mode
Oct 23 13:46:28 localhost kernel: INFO: NMI handler (perf_event_nmi_handler) took too long to run: 907875.014 msecs
Oct 23 13:46:28 localhost kernel: perf: interrupt took too long (120883 > 7575), lowering kernel.perf_event_max_sample_rate to 1000
Oct 23 13:46:31 localhost kernel: INFO: NMI handler (arch_trigger_all_cpu_backtrace_handler) took too long to run: 982076.016 msecs
Oct 23 13:46:31 localhost kernel: INFO: NMI handler (arch_trigger_all_cpu_backtrace_handler) took too long to run: 982837.016 msecs
Oct 23 13:46:37 localhost kernel: device ens6f1 left promiscuous mode
Oct 23 13:46:38 localhost kernel: device ens3f1 entered promiscuous mode
Oct 23 13:46:59 localhost kernel: device ens3f1 left promiscuous mode
Oct 23 13:50:19 localhost kernel: perf: interrupt took too long (151272 > 151103), lowering kernel.perf_event_max_sample_rate to 1000
Oct 23 13:52:39 localhost start_filebeat.sh: /opt/pamon/filebeat-redis/start_filebeat.sh: line 14: 72199 Killed $filebeat_exe -c $filebeat_config
Oct 23 13:55:26 localhost kernel: perf: interrupt took too long (189323 > 189090), lowering kernel.perf_event_max_sample_rate to 1000
Oct 23 14:17:02 localhost auditd[1623]: Audit daemon rotating log files
Oct 23 14:30:17 localhost kernel: perf: interrupt took too long (237320 > 236653), lowering kernel.perf_event_max_sample_rate to 1000
Oct 23 14:37:39 localhost su: (to redis) padba on pts/0
Oct 23 14:39:34 localhost su: (to redis) padba on pts/1
Oct 23 14:51:17 localhost kernel: device ens6f1 entered promiscuous mode
Oct 23 14:51:37 localhost kernel: device ens6f1 left promiscuous mode
Oct 23 14:51:42 localhost kernel: device ens3f1 entered promiscuous mode
Oct 23 14:51:59 localhost kernel: device ens3f1 left promiscuous mode
Oct 23 15:09:42 localhost kernel: hrtimer: interrupt took 542805 ns
Oct 23 15:53:37 localhost kernel: device ens6f1 entered promiscuous mode
Oct 23 15:54:07 localhost kernel: device ens6f1 left promiscuous mode
--显然在该时间点OS没有发生重启,但发生了一些异常的log打印,如perf: interrupt took too long 、NMI handler 、promiscuous mode,对此分析如下:
1、 promiscuous mode,通常在用户有监控软件抓取流量时会触发,同时从日志中也可以看到不断有此现象,不过此现象通常伴随在抓包的过程中,为正常日志情况。 不过这个现象有些频繁,客户应该关注一点。
2、对于perf:interrupt took too long,通常这表示perf采集信息中断时间较长没有响应。
3、mi handler 类似。
所以需要进一步对perf的log打印查看,从OS日志中搜索perf的log,如下所示:

发现OS日志多次出现perf的异常log,进一步分析perf,perf是Linux下的一款性能分析工具,因此出现此问题初步判断可能跟机器的性能相关。
通过sar命令记录的性能数据进一步查看,查看上述异常时间点的性能数据,初步发现一个规律是上述异常时间点均伴随了较高的CPU使用率。
为验证上述猜测,进一步转化数据。
然后通过sos report中的sar文件来观察CPU使用率,方式是将sar07/sar23/sar13中的cpu使用率,导入至excel表中然后将cpu使用率画成折线图,最后如下所示:
Sar07如下所示,从折线图可以看出来,大概是在9点,接近十点的时候,cpu的idle很低也就是cpu使用率很高。

sar23如下所示,从折线图可以看出来,在13点接近14点的时候,cpu使用率突然增高。

问题结论
综上所述,可以看出来,在发生问题的时间点均发生了CPU使用率过高的问题,因此可以判断是CPU使用率过高导致了问题。
sar工具查看网卡实时速率
使用iperf打流测试,然后通过sar来监控每个网卡的实时速率,如下所示:


使用的命令为:
[root@localhost ~]# sar -n DEV 1
[转帖]Sar的一次使用案例的更多相关文章
- [转帖]Speed-BI数据分析案例:2016年8月汽车销量排行榜
[转帖]Speed-BI数据分析案例:2016年8月汽车销量排行榜 据中国汽车工业协会统计分析,2016年8月,乘用车市场表现较好,当月销量环比和同比均呈较快增长.1-8月,乘用车销量总体呈稳定增长, ...
- [转帖]Linux系列之SAR命令使用详解
Linux系列之SAR命令使用详解 sar是System Activity Reporter(系统活动情况报告)的缩写.这个工具所需要的负载很小,也是目前linux中最为全面的性能分析工具之一.此款工 ...
- Android 性能测试之内存 --- 追加腾讯性能案例,安卓抓取性能扫盲帖
内存测试: 思路 目前做的是酒店APP,另下载安装几个个第三方酒店的APP以方便对比(相当于可以做竞品测试) 数据的获取来源是ADB底层命令,而且最好是不需要root权限,因为很多手机root很麻烦或 ...
- mysql的"双1设置"-数据安全的关键参数(案例分享)
mysql的"双1验证"指的是innodb_flush_log_at_trx_commit和sync_binlog两个参数设置,这两个是是控制MySQL 磁盘写入策略以及数据安全性 ...
- hibernate 5的二级缓存案例讲解
hibernate 5的二级缓存案例讲解 本帖最后由 鱼丸儿 于 2018-1-20 11:44 编辑 大家好,今天来记录讲解一下磕磕绊绊的hibernate5 的二级缓存配置,一条路摸到黑 那么在这 ...
- MySQL数据库详解之"双1设置"的数据安全的关键参数案例分享
mysql的"双1验证"指的是innodb_flush_log_at_trx_commit和sync_binlog两个参数设置,这两个是是控制MySQL 磁盘写入策略以及数据安全性 ...
- 用DDD模拟案例分析
之前我写了几篇关于DDD的介绍和一些小例子说明,我想这对于介绍DDD还是有些模糊,甚至还不知道怎么用DDD来分析设计.昨天和园友讨论也发现没有例子很难说明,所以今天我模拟了一个案例,同时这个案例也是真 ...
- 洗礼灵魂,修炼python(29)--装饰器(1)—>利用经典案例解析装饰器概念
前提必备 不急着进入正题,在前面函数作用域那一章介绍了闭包,全局变量局部变量,这里再看几个简单的闭包案例: 1):不带参数 注意: 1.这里的name属性是每个函数都有的,可以反馈函数名 2.temp ...
- (转)linux top命令中各cpu占用率含义及案例分析
原文:https://blog.csdn.net/ydyang1126/article/details/72820349 linux top命令中各cpu占用率含义 0 性能监控介绍 1 确定应用类型 ...
- 转载:案例用Excel对会员客户交易数据进行RFM分析
案例:用Excel对会员客户交易数据进行RFM分析 背景: 一个会员服务的企业,有近1年约1200个会员客户的收银数据.由于公司想针对不同 ...
随机推荐
- 春眠不觉晓,Java数据类型知多少?基础牢不牢看完本文就有数了
文编|JavaBuild 哈喽,大家好呀!我是JavaBuild,以后可以喊我鸟哥!俺滴座右铭是不在沉默中爆发,就在沉默中灭亡,一起加油学习,珍惜现在来之不易的学习时光吧,等工作之后,你就会发现,想学 ...
- 开发篇1:使用原生api和Langchain调用大模型
对大模型的调用通常有以下几种方式:方式一.大模型厂商都会定义http风格的请求接口,在代码中可以直接发起http请求调用:方式二.在开发环境中使用大模型厂商提供的api:方式三.使用开发框架Langc ...
- 神经网络基础篇:梯度下降法(Gradient Descent)
梯度下降法 梯度下降法可以做什么? 在 测试集上,通过最小化代价函数(成本函数)\(J(w,b)\)来训练的参数\(w\)和\(b\), 如图,在第二行给出和之前一样的逻辑回归算法的代价函数(成本函数 ...
- 【Pandas】groupby连用的count()和size()的区别
groupby连用的count()和size()的区别 count() 计算的是 value(数值): size() 计算的是 size(个数) 我们有以下表: size() age = df.gro ...
- MySQL篇:第四章_详解DML语言
DML语言 插入 一.方式一 语法: insert into 表名(字段名,...) values(值1,...); 特点: 1.字段类型和值类型一致或兼容,而且一一对应 2.可以为空的字段,可以不用 ...
- 十八般武艺玩转GaussDB(DWS)性能调优:总体调优策略
摘要: 性能调优是应用迁移或开发过程中的关键步骤,同时也在整个项目实施过程中占据很大的份量,本篇主要介绍数据库级别的性能调优思路和总体策略. 性能调优是应用迁移或开发过程中的关键步骤,同时也在整个项目 ...
- 顶会CIKM'21论文解读:基于图神经网络的人类行为轨迹恢复模型
摘要:本文是由华为云数据库创新Lab联合电子科技大学数据与智能实验室发表在顶会CIKM'21的文章,该文章提出首个克服人类移动轨迹数据中普遍存在的多层次周期性.周期偏移现象以及数据稀疏问题的轨迹恢复模 ...
- 【教程】React Native 应用中的代码混淆与安全性管理
混淆是指对源代码进行加密.重命名等操作,以增加代码的复杂度,使其难以理解和反编译. 在React Native中,混淆可以通过以下步骤实现: 1. 将JavaScript源代码转换为基于本机平台的 ...
- 如何在Windows上将iOS应用上传到App Store
Application Uploader iOS App上架工具是一款非常好用的针对iOS苹果应用程序软件开发的实用编程工具,它的主要作用是帮助用户进行快速的程序应用设计和程序应用调试,节省用户进 ...
- 【短道速滑四】Halcon的texture_laws算子自我研究
Halcon里有个texture_laws 算子,最近实现了下,记录下相关细节. Halcon的文档里对该算子是这样描述的: texture_laws - Filter an image using ...