线上服务mcelog负载异常分析处理流程
一、问题概述:
Nginx服务器,HP,有冗余,其中一台服务器mcelog负载比较高,日志秒级别,已经影响了此服务器业务。
#注意看此信息是不断循环,注意看
Transaction:Memory scrubbing error MemCtrl:Corrected patrol scrub error Erroroverflow Corrected error
#注意看其它信息
CPU16 BANK 9 MCE11
337335 MCi_MISCregister valid 337336 MCi_ADDRregister valid 337337 MCA:MEMORY CONTROLLER MS_CHANNEL1_ERR 337338 Transaction:Memory scrubbing error 337339 MemCtrl:Corrected patrol scrub error 337340 337341 STATUScc0048c0000800c1 MCGSTATUS 0 337342 MCGCAP1000812 APICID 8 SOCKETID 0 337343 CPUIDVendor Intel Family 6 Model 45 337344 Hardwareevent. This is not a software error. 337345 MCE10 337346 CPU16 BANK 9 337347 MISC90011000010008c ADDR 15e0e2000 337348 TIME1495308194 Sun May 21 03:23:14 2017 337349 MCGstatus: 337350 MCistatus: 337351 Erroroverflow 337352 Correctederror 337353 MCi_MISCregister valid 337354 MCi_ADDRregister valid 337355 MCA:MEMORY CONTROLLER MS_CHANNEL1_ERR 337356 Transaction:Memory scrubbing error 337357 MemCtrl:Corrected patrol scrub error 337358 337359 STATUScc0003c0000800c1 MCGSTATUS 0 337360 MCGCAP1000812 APICID 9 SOCKETID 0 337361 CPUIDVendor Intel Family 6 Model 45 337362 Hardwareevent. This is not a software error. 337363 MCE11 337364 CPU17 BANK 9 337365 MISC90011000010008c ADDR 15e0f8000 337366 TIME1495308194 Sun May 21 03:23:14 2017 337367 MCGstatus: 337368 MCistatus: 337369 Erroroverflow 337370 Correctederror
tail -f /var/log/messages
二、mcelog简单说明
2.1)mcelog此服务是什么?
检查硬件错误,特别是内存和CPU错误的工具
2.2)mcelog工作模式?
cron trigger (效率高低问题)
daemon (centos目前形式) 默认日志打到/var/log/mcelog
2.3)mcelog安装
yum install mcelog or 编译即可。
三、问题分析:
3.1)error信息:
Transaction:Memory scrubbing error MemCtrl:Corrected patrol scrub error Erroroverflow Corrected error
注意,通过上面的报错信息可以判断内存可能出了问题,因为mcelog日志报错,则很可能是硬件信息故障。
3.2)其它信息
MCE(Machine Check Exception)是一类计算机硬件错误。可能原因有:
内存报错,内存缓存故障,cpu故障,也可能和主板,总线有关系。
CPU16 BANK 9
CPU 17 BANK 9 ...
bank定义:
传统内存系统为了保证CPU的正常工作,必须一次传输完CPU在一个传输周期内所需要的数据。而CPU在一个传输周期能接收的数据容量就是CPU数据总线的位宽,单位是bit(位)。内存与CPU之间的数据交换通过主板上的北桥芯片进行,内存总线的数据位宽等同于CPU数据总线的位宽,这个位宽就称之为物理Bank。
bank:一直想通过bank和上面日志,排查可能哪个插槽有问题。这里希望大家给予提示。
3.3)查看服务器各指示灯:
正常。(这里很意外,不过如果问题刚产生不久,指示灯也不会立马出问题)
3.4)咨询朋友
建议:一般硬件出了问题,建议换内存,备份数据等。
四、处理顺序(renzhiyuan.blog.51cto.com)
4.1)先平滑迁移业务保障业务正常运行。
4.2)备份数据,并确保数据的可用性。
4.3)切勿重启,先尝试清楚内存缓存,inode,目录。排除缓存问题。
4.4)如果负载很高,可考虑关闭mcelog服务。
4.5)hp服务器有硬件分析功能,可先排查。
4.6)准备相同规格内存条,尝试更换内存条(最好不要动每个内存原本的位置,一般内存不是很多,可尝 试,要是能判断哪个插槽出问题,可先替换)
4.7)如果更换内存条无效,则可能其它硬件问题,考虑维修处理。
4.8)以上所有进度和结果,做备案,并及时和领导反映。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
案例 - 误删千万的表
某天下午,正在给测试库录入数据,看到有截断的warnings,就把表delete掉,重新导入,在做这个导入操作的同时,还在线上给业务做一个update数据的操作,突然之间,误把测试库的secureCRT当做测试的窗口,进行了一个delete操作,2秒后还没删除成功,再看一下表名字,原来是线上业务的表,当场懵逼了 马上ctrl + c 取消delete语句,但因为用的是myshard中间件,索引 ctrl + v 没用有,delete的语句,再就传递到下面挂在的mysql里执行,于是2000万的表就这样被删除了,全球一共9个节点,也因为同步dml sql,而导致所有节点的该表被删除 不过myshard的有一个保护机制,就是每行数据都会加入一个__deleted字段,myshard的delete数据,相当于mysql层面的 update deleted = 1 而已,3天之后,才会真正把数据删掉,目的是防止人为误操作 于是我选择业务使用最多的其中一个节点,进入mysql层面,SET sql_log_bin = 0 ,然后进行 update 表 set deleted=0 where del...
- 下一篇
HP P2000 RAID-5两块盘离线的数据恢复报告
1. 故障描述 本案例是HP P2000的存储vmware exsi虚拟化平台,由RAID-5由10块lT硬盘组成,其中6号盘是热备盘,由于故障导致RAID-5磁盘阵列的两块盘掉线,表现为两块硬盘亮黄灯。 经用户方维护人员检测,故障硬盘应为物理故障,表现为:序列号无法读取,在SAS扩展卡上硬盘无法识别。 2. 数据备份与修复 故障发生后用户方工程师与我公司联系,经过详细咨询,了解到故障比较严重,必须把RAID-5磁盘阵列带到我公司进行检测,检测RAID-5的每块成员盘是物理故障(磁头损坏或者盘片划伤)还是逻辑故障。由于情况紧急,工程师在接到原盘以后,立即着手准备检测。对能识别的好盘用连接到北亚镜像服务器上使用WinHex做扇区级镜像,同时对不能识别的坏盘进行检测。 首先将坏盘连接到外部的SAS扩展卡上,加电后通过硬盘工作声音判断硬盘电机能够起转,但是磁头没有进行寻道操作,于是尝试把硬盘PCB分离下来对HDA组件氧化部分进行清洁操作,将PCB还原后故障依旧。于是和客户沟通使用6号热备盘的好PCB替换到故障盘上进行尝试性修复,再将故障盘PCB上的ROM芯片替换到6号盘的好PCB上面...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Red5直播服务器,属于Java语言的直播服务器
- CentOS8编译安装MySQL8.0.19
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程