专栏中心

EEPW首页 > 专栏 > 存储引发的故障

存储引发的故障

发布人:MCZH0904 时间:2020-10-10 来源:工程师 发布文章

现场如下图所示:

图片5.jpg

开始排查网络问题
在监控里面发现网络一直很稳定。而且如果是网络出现问题,同一网段的应用应该也都会报错才对。事实上只有对应的应用和中间件报错。

排查日志

发现一旦有 中间件的register err 必定会出现中间件调用后端数据库的sql read timeout的报错。但这两个报错完全不是在一个线程里面的,一个是处理前端的Reactor线程,一个是处理后端SQLWorker线程,如下图所示:

图片6.jpg

这两个线程是互相独立的,代码中并没有发现任何机制能让这两个线程互相影响。

进一步进行排查

和之前的慢SQL一样,都是调用第二个数据库超时,而DBA那边却说SQL执行没有任何异常,

图片7.jpg

感觉明显SQL执行有问题,只不过DBA是采样而且将采样耗时平均的,偶尔的几笔耗时并不会在整体SQL的耗时里面有所体现。

图片8.jpg

日志分析

从日志入手, REACTOR线程和Worker线程同时报错,但两者并无特殊的关联,说明可能是同一个原因引起的两种不同现象。在线上报错日志里面进行细细搜索,发现在大量的

NIOReactor-1-RW register err java.nio.channels.CloasedChannelException

日志中会掺杂着这个报错:

NIOReactor-1-RW Socket Read timed out

at XXXXXX . doCommit

at XXXXXX Socket read timedout

发现了端倪,Reactor作为一个IO线程,我们的中间件在处理commit/rollback这样的操作时候还是在Reactor线程进行的。很明显Reactor线程卡主是由于commit慢了

图片9.jpg

由于app1commit特别慢而卡住了reactor1线程,从而落在reactor1线程上的握手操作都会超时!如下图所示:

图片10.jpg

为什么commit会变慢?

commit变慢所关联的DB正好也是出现慢SQL的那个DB。发现其中和存储相关的HBA卡有报错!如下图所示: 

图片11.jpg

报错时间都是一致的!

 

推荐阅读:

明辰智航云安网络与虚拟化性能管理系统(www.mingczh.com)


专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

Virtex-7 485T DSP处理能力

视频 2011-09-21

超级单片机工具集

对标英特尔AMD!英伟达将于今年Q4推出旗下首款AI PC芯片

智能计算 2025-01-16

贸泽开售适用于新一代汽车和工业应用的Molex MX150穿缸密封连接器

【科技和移动性亮点】Aeva发布高分辨率4D激光雷达传感器,推动自动驾驶发展

荷兰扩大半导体出口管制范围 商务部回应:坚决反对

中国企业优化云原生投资的三大策略

USB硬件检测软件

Wolfspeed得州厂关闭并挂牌出售

EDA/PCB 2025-01-16

输出电压调节

视频 2011-10-08

【科技和移动性亮点】德州仪器发布全新汽车芯片

曝台积电拒绝代工三星Exynos处理器:理由是怕泄密

苹果公司CEO乔布斯在斯坦福大学的演讲中文字幕

视频 2011-10-12

usb协议(中文版)

资源下载 2007-03-27

USB调试助手V1.2

Virtex-7 485T I/O处理能力

视频 2011-09-21

Arm计划涨价300%:考虑提供完整芯片设计

EDA/PCB 2025-01-16

机构:预计到2026年医疗行业对生成式人工智能的投资将增加两倍

医疗电子 2025-01-16

Windows下通过计算机并口读写24系列I2C存储器的小软件

集成了数字电源管理功能的模拟 DC/DC 控制器

更多 培训课堂
更多 焦点
更多 视频

技术专区