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,如下所示:

 
image.png

发现OS日志多次出现perf的异常log,进一步分析perf,perf是Linux下的一款性能分析工具,因此出现此问题初步判断可能跟机器的性能相关。

通过sar命令记录的性能数据进一步查看,查看上述异常时间点的性能数据,初步发现一个规律是上述异常时间点均伴随了较高的CPU使用率。

为验证上述猜测,进一步转化数据。

然后通过sos report中的sar文件来观察CPU使用率,方式是将sar07/sar23/sar13中的cpu使用率,导入至excel表中然后将cpu使用率画成折线图,最后如下所示:
Sar07如下所示,从折线图可以看出来,大概是在9点,接近十点的时候,cpu的idle很低也就是cpu使用率很高。

 
image.png

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

 
image.png

问题结论

综上所述,可以看出来,在发生问题的时间点均发生了CPU使用率过高的问题,因此可以判断是CPU使用率过高导致了问题。

sar工具查看网卡实时速率

使用iperf打流测试,然后通过sar来监控每个网卡的实时速率,如下所示:

 
image.png
 
image.png

使用的命令为:
[root@localhost ~]# sar -n DEV 1

[转帖]Sar的一次使用案例的更多相关文章

  1. [转帖]Speed-BI数据分析案例:2016年8月汽车销量排行榜

    [转帖]Speed-BI数据分析案例:2016年8月汽车销量排行榜 据中国汽车工业协会统计分析,2016年8月,乘用车市场表现较好,当月销量环比和同比均呈较快增长.1-8月,乘用车销量总体呈稳定增长, ...

  2. [转帖]Linux系列之SAR命令使用详解

    Linux系列之SAR命令使用详解 sar是System Activity Reporter(系统活动情况报告)的缩写.这个工具所需要的负载很小,也是目前linux中最为全面的性能分析工具之一.此款工 ...

  3. Android 性能测试之内存 --- 追加腾讯性能案例,安卓抓取性能扫盲帖

    内存测试: 思路 目前做的是酒店APP,另下载安装几个个第三方酒店的APP以方便对比(相当于可以做竞品测试) 数据的获取来源是ADB底层命令,而且最好是不需要root权限,因为很多手机root很麻烦或 ...

  4. mysql的"双1设置"-数据安全的关键参数(案例分享)

    mysql的"双1验证"指的是innodb_flush_log_at_trx_commit和sync_binlog两个参数设置,这两个是是控制MySQL 磁盘写入策略以及数据安全性 ...

  5. hibernate 5的二级缓存案例讲解

    hibernate 5的二级缓存案例讲解 本帖最后由 鱼丸儿 于 2018-1-20 11:44 编辑 大家好,今天来记录讲解一下磕磕绊绊的hibernate5 的二级缓存配置,一条路摸到黑 那么在这 ...

  6. MySQL数据库详解之"双1设置"的数据安全的关键参数案例分享

    mysql的"双1验证"指的是innodb_flush_log_at_trx_commit和sync_binlog两个参数设置,这两个是是控制MySQL 磁盘写入策略以及数据安全性 ...

  7. 用DDD模拟案例分析

    之前我写了几篇关于DDD的介绍和一些小例子说明,我想这对于介绍DDD还是有些模糊,甚至还不知道怎么用DDD来分析设计.昨天和园友讨论也发现没有例子很难说明,所以今天我模拟了一个案例,同时这个案例也是真 ...

  8. 洗礼灵魂,修炼python(29)--装饰器(1)—>利用经典案例解析装饰器概念

    前提必备 不急着进入正题,在前面函数作用域那一章介绍了闭包,全局变量局部变量,这里再看几个简单的闭包案例: 1):不带参数 注意: 1.这里的name属性是每个函数都有的,可以反馈函数名 2.temp ...

  9. (转)linux top命令中各cpu占用率含义及案例分析

    原文:https://blog.csdn.net/ydyang1126/article/details/72820349 linux top命令中各cpu占用率含义 0 性能监控介绍 1 确定应用类型 ...

  10. 转载:案例用Excel对会员客户交易数据进行RFM分析

    案例:用Excel对会员客户交易数据进行RFM分析                                背景: 一个会员服务的企业,有近1年约1200个会员客户的收银数据.由于公司想针对不同 ...

随机推荐

  1. 【华为云技术分享】空间异常即刻诊断,华为云数据管理服务DAS又出新招

    摘要:华为云数据管理服务DAS提供的云DBA智能化运维平台于日前发布了空间&元数据分析特性,支持查看实例空间异常列表.实例空间概况.数据库列表信息,帮助用户及时发现数据库中的空间和元数据异常, ...

  2. OpenCV萌新福音:易上手的数字识别实践案例

    摘要:信用卡识别的案例用到了图像处理的一些基本操作,对刚上手CV的人来说还是比较友好的. 本文分享自华为云社区<Python openCV案例:信用卡数字识别>,原文作者:深蓝的回音 . ...

  3. 裴丹:AIOps 智能运维经验分享

    摘要:本文结合裴丹教授过去二十余年在AIOps领域与几十家企业合作.跨多种技术栈的落地经验积累,以及150篇左右学术论文的算法积累,总结出的AIOps落地的一些经验性原则. 本文分享自华为云社区< ...

  4. 再谈BOM和DOM(3):DOM节点操作-元素样式修改及DOM内容增删改查

    操作节点,先得选择节点,就得知道节点选择器与DOM节点查找 DOM节点选择器 W3C提供了比较方便的定位节点的方法和属性 getElementById() 一个参数:元素标签的ID getElemen ...

  5. Intellij idea 生成带注释的get/set

    自带的 Alt+ Insert 中的 Getter and  Setter 生成的属性,不能将 private 字段中的注释带过去,比较尴尬.可以通过两种试. 1. 修改模板:这种方法不能得到 pri ...

  6. 麻省理工公开课:微积分,中文字幕视频+PDF

    数学是机器学习的语言,统计是构建机器学习的基础,线性代数为机器学习提供了矩阵这一强大工具,但是要充分理解神经网络以及深度学习如何运作的,还需要学好微积分. 大家应该多少对微积分有些基础,但是很难将其与 ...

  7. DNS--安装&&配置文件

    1 下载 #下载服务yum -y install bind#下载解析工具yum -y install bind-utils 2 配置文件 主配置文件 /etc/named.conf 区配置文件 /va ...

  8. SAP发布HTTP接口

    1.创建类 引用标准接口 改写集成的接口方法 此处仅实现POST方法,将传入的JSON报文转为函数传入参数,调用获取物料接口,并将返回的物料信息,转换为JSON报文返回 METHOD if_http_ ...

  9. ifelse优化方案

    优化 if else:https://blog.csdn.net/FBB360JAVA/article/details/103832405 利用java8特性优化: https://blog.csdn ...

  10. Linux一键安装docker脚本,含ubuntu和centos

    将脚本保存为docker_install.sh,可以上传git,到服务器中,git clone下来后,sh docker_install.sh即可自动安装 ubuntu实现 # 以Ubuntu为例 # ...