有一次在做MySQL数据库更新时,发现DML更新效率特别低,总能发现超过1秒的慢日志,一般很少会出现这种情况,初步判定为可能网络故障或者就是DB服务器自身的性能出现问题导致。
经过检查服务器状况,发现确实发生了硬件故障,主要是raid 10中的一块硬盘发生预警,信息如下:
Physical Disk: 1 Enclosure Device ID: 32 Slot Number: 3 Device Id: 3 Sequence Number: 2Media Error Count: 650Other Error Count: 73Predictive Failure Count: 71Last Predictive Failure Event Seq Number: 6716 Raw Size: 140014MB [0x11177328 Sectors] Non Coerced Size: 139502MB [0x11077328 Sectors] Coerced Size: 139392MB [0x11040000 Sectors] Firmware state: Online SAS Address(0): 0x500000e11079e682 SAS Address(1): 0x0 Connected Port Number: 3(path0) Inquiry Data: FUJITSU MBA3147RC D306BLB5P9500H4M
大家注意下上面的信息,硬盘的状态还是 Online,并没有报错,但是另外2个 Error Count值从凌晨开始一直在较快速度增长。
再观察服务器的sar日志,发现从5点发起例行DB备份时,服务器的IO性能急剧下降,因此认定:
停服时存盘速度慢确实和一块硬盘发生预警有关系
由于发起DB备份,需要瞬间读取大量数据,因此需要扫描全部raid阵列中的硬盘,但其中一块盘的状态并没有标记为Failed或Offline,
因此raid阵列还是会去扫描它,导致IO性能特别差。这时候,如果我们把硬盘状态修改成Offline应该就可以避免这种问题,并且不会对raid 10产生丢数据的风险。
碰到类似现象需要谨慎,尽快安排更换备盘,防止问题扩大化。
本文转自叶金荣51CTO博客,原文链接:http://blog.51cto.com/imysql/1879740,如需转载请自行联系原作者