当前位置: 首页 > news >正文

linux的cpu软中断问题引发的gc cr block lost高等待

早上收到应用反馈应用入库积压严重
初步检查:
1.查看主机性能,vmstat看到d队列较高,其余性能良好
2.查看数据库性能,发现大量gc cr request等待,一般此等待跟本节点内存命中率有关,本地内存块中无结果集,就需要到对端节点命中并请求,网络开销较大,这种问题只有重刷cache解决
3.提取两个节点的awr查看,发现等待时间排第一的是gc cr block lost,
而Estd Interconnect traffic (KB)的耗时是15MB,并没有因为大量的gc请求而引发心跳流量的增长,这就比较奇怪了,照理说gc请求较高,心跳流量会剧增。
那就来针对gc cr block lost这个等待时间来研究了,该等待事件一般跟心跳网卡丢包有关,
进一步查看心跳网卡情况
本案例的rac是使用的双心跳,通过ifconfig查看心跳流量包是否存在丢失

可以看到eth3心跳网卡的overruns较高
RX overruns: 表示了 fifo 的 overruns,这是由于 Ring Buffer(aka Driver Queue) 传输的 IO 大于 kernel 能够处理的 IO 导致的,而 Ring Buffer 则是指在发起 IRQ 请求之前的那块 buffer。很明显,overruns 的增大意味着数据包没到 Ring Buffer 就被网卡物理层给丢弃了,而 CPU 无法即使的处理中断是造成 Ring Buffer 满的原因之一。
这个现象就让人联想到之前出现的CPU软中断的问题,可以通过 mpstat -P ALL 2 3查看具体情况
 
core 2 的%soft已经100%了,这就比较明显了,确认无疑,就是软中断故障
通过执行脚本修复
cd /opt/ty
./zdatatuner --pinints=eth
执行完,积压立马恢复,数据库等待事件也恢复正常。
 
【后记】
这个bug在之前已经通过这个脚本修复过,为什么还会出现,回忆在执行之后截止目前,针对这两台主机做过的操作只有加盘,然后对udev重启过,有可能跟该操作有关,所以以后在做类似的操作后,及时执行该脚本,避免再次出现同样的问题。

转载于:https://www.cnblogs.com/tonnytangy/p/7551358.html

相关文章:

  • 对IO流的操作(文件大小,拷贝,移动,删除)
  • 【NetApp】关于walfiron命令的一点资料
  • 电商总结(八)如何打造一个小而精的电商网站架构
  • java正则表式的使用
  • grub修复
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • LXD 2.0系列之二:LXD安装和配置
  • Java调用JavaFX的方法
  • ORA-04089: 无法对 SYS 拥有的对象创建触发器
  • Java获取URL中的顶级域名domain的工具类
  • CSS实现空心三角指示箭头
  • TPYBoard开发板ADC数模转换一: 初识ADC使用
  • no.4 数据和C 06
  • W3School Redis教程(安装/基本操作/高级操作/命令/官方文档/官方集群教程)
  • Go语言与数据库开发:01-06
  • [数据结构]链表的实现在PHP中
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • Angular 2 DI - IoC DI - 1
  • CEF与代理
  • C语言笔记(第一章:C语言编程)
  • FineReport中如何实现自动滚屏效果
  • GraphQL学习过程应该是这样的
  • HTML-表单
  • HTTP请求重发
  • Java IO学习笔记一
  • Javascripit类型转换比较那点事儿,双等号(==)
  • JavaScript 奇技淫巧
  • MySQL QA
  • Next.js之基础概念(二)
  • PhantomJS 安装
  • Sublime Text 2/3 绑定Eclipse快捷键
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • 初识 webpack
  • 浮动相关
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 技术胖1-4季视频复习— (看视频笔记)
  • 聊聊flink的BlobWriter
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 如何在GitHub上创建个人博客
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 一份游戏开发学习路线
  • 用jquery写贪吃蛇
  • 正则表达式
  • 最简单的无缝轮播
  • NLPIR智能语义技术让大数据挖掘更简单
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (c语言)strcpy函数用法
  • (Java)【深基9.例1】选举学生会
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (转)【Hibernate总结系列】使用举例
  • (转)IOS中获取各种文件的目录路径的方法
  • .NET Project Open Day(2011.11.13)
  • .net 微服务 服务保护 自动重试 Polly
  • .NETCORE 开发登录接口MFA谷歌多因子身份验证