加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 安全 > 正文

告警:IO利用率飚至60%+,请及时排查优化!

发布时间:2021-01-12 11:06:14 所属栏目:安全 来源:网络整理
导读:副标题#e# 《告警:IO利用率飚至60%+,请及时排查优化
副标题[/!--empirenews.page--]

《告警:IO利用率飚至60%+,请及时排查优化!》要点:
本文介绍了告警:IO利用率飚至60%+,请及时排查优化!,希望对您有用。如果有疑问,可以联系我们。

导读:通常引起IO升高的因素很多,比如高并发或大字段写入、硬盘老化有坏块、Raid卡电池损坏或充放电、硬件自检等都会引起IO升高.本文主要对硬件自检导致的IO问题排查做简要说明.

现象

监控报警,IO最大利用率达60%+,应用TP99超时,成功率降低,如下为当时监控图:

遇到此问题的排查方向

第一,定时任务导致.
先看时间,是否为定时任务导致,比如备份.如果binlog之前生成较多,过期后自动清理也会导致IO升高,可以通过磁盘空间监控查看.

第二,并发较大写磁盘频繁.
一般此问题不会造成IO util 50%以上.如果事物较大或者并发较大,general log或slow log会有记录,我们可以先看下当前线程连接情况,再结合general log或slow log查看是哪些SQL导致.是否需要优化SQL还是控制并发,以及调整数据库刷新频率置成双0模式.

第三,硬件因素导致.
IO util 50%以上,很大几率是硬件问题导致,磁盘是否有坏块.最常见的就是Raid卡电池损坏(充放电),如果电池损坏没有开启写缓存,则会直接写磁盘,IO会升高.我们可以通过如下命令检查,除HP服务器外其他采用MegaCli查看硬件信息,HP采用自带hpssacli命令查看,切记不要使用老命令hpacucli,此命令会导致部分HP型号服务器操作系统直接Hang.

服务器大多是LSI的MegaRAID卡,MegaCli兼容服务器命令

查看磁盘坏块:
MegaCli64 -PDList –aALL|egrep –I ‘error|Firmware’

查看缓存策略:
/opt/MegaRAID/MegaCli/MegaCli64 -cfgdsply -aALL |grep Policy
Default Cache Policy: WriteBack,ReadAhead,Direct,No Write Cache if Bad BBU
Current Cache Policy: WriteBack,No Write Cache if Bad BBU
Access Policy : Read/Write
Disk Cache Policy : Disk’s Default

此种状态为BBU损坏时不写Raid卡缓存

修改为BBU损坏时写Raid卡缓存:
/opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp CachedBadBBU -Lall -aALL
Default Cache Policy: WriteBack,Write Cache OK if Bad BBU
Current Cache Policy: WriteBack,Write Cache OK if Bad BBU
Access Policy : Read/Write
Disk Cache Policy : Disk’s Default

生成自检及电池充放电日志:
/opt/MegaRAID/MegaCli/MegaCli64 -AdpEventLog -GetEvents -aALL -f 1.log
/opt/MegaRAID/MegaCli/MegaCli64 -FwTermLog -Dsply -f 2.log -aALL

打开物理磁盘缓存:
/opt/MegaRAID/MegaCli/MegaCli64 -LDGetProp -DskCache -LALL -aALL
Adapter 0-VD 0(target id: 0): Disk Write Cache : Enabled

HP服务器hpssacli命令

HP查看电池状态:
hpssacli ctrl all show status

HP查看缓存策略:
hpssacli ctrl all show detail|grep -i Cache

查看插槽号和逻辑磁盘号:
hpssacli ctrl all show config detail|egrep -i ‘Logical Drive:|slot:’

打开物理磁盘缓存:
hpssacli ctrl slot=0 modify drivewritecache=enable

查看阵列号及SSDSmartPath:
hpssacli ctrl all show config detail|egrep -i ‘Array:|HP SSD Smart Path’

SSD需要注意:(打开逻辑缓存需要先关闭SSD Smart Path功能)
hpssacli ctrl slot=0 array A modify ssdsmartpath=disable

打开逻辑磁盘缓存:
hpssacli ctrl slot=0 logicaldrive 1 modify caching=enable

在没有电池的情况下开启raid写缓存:
hpssacli ctrl slot=0 modify nobatterywritecache=enable

设置读写百分比:
hpssacli ctrl slot=0 modify cacheratIO=10/90

了解以上服务器命令后,分析三种情况:

  • 情况一:无Raid卡电池(损坏)

查看Raid卡电池状态:
/opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -GetBbuStatus -aALL
Adapter 0: Get BBU Status Failed.
FW error descriptIOn:
The required hardware component is not present.
hpssacli ctrl all show status
Controller Status: OK
Cache Status: OK
Battery/Capacitor Status: Failed

这种情况,如果没有修改默认WriteCache OK if Bad BBU模式或者No-Battery Write Cache: Enabled,在电池损坏时会转换成WT模式.从而导致IO非常高.

/opt/MegaRAID/MegaCli/MegaCli64 -cfgdsply -aALL |grep Policy
Default Cache Policy: WriteBack,ReadAdaptive,No Write Cache if Bad BBU
Current Cache Policy: WriteThrough,No Write Cache if Bad BBU

修改成WC模式后,IO使用率可以从99.6%降到2%左右,效果十分显著.

但这种情况下存在一个问题:因为没有Raid卡电池保护,即突然断电或者主板故障时会造成数据丢失风险.数据库服务器一般采用双电模式,掉电风险较低,但是主板故障相对较高,所以BBU坏时是否要打开Write Cache,需要根据业务情况综合取舍.

  • 情况二:Raid卡电池处于充放电阶段

首先我们先了解BBU充放电原理:
BBU由锂离子电池和电子控制电路组成.锂离子电池的寿命取决于其老化程度,从出厂之后,无论它是否被充电及它的充放电次数多与少,锂离子电池的容量将慢慢的减少.这意味着一个老电池无法像新电池那么持久.也就决定了BBU的相对充电状态(Relative State of Charge)不会等于绝对充电状态(Absolute State of Charge).

为了记录电池的放电曲线,以便控制器了解电池的状态,例如最大和最小电压等,同时为了延长电池的寿命,默认会启用自动校准模式(AutoLearn Mode).在learn cycle期间,Raid卡控制器不会启用BBU直到它完成校准.整个过程大概1小时左右.这个过程中,会禁用WriteBack模式,以保证数据完整性,同时会造成性能的降低.

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读