| 整个Learn Cycle分为三个步骤: 
控制器把BBU电池充满电(该步骤可能是放电后充电或直接充电,如果电池刚好满电,则直接进入第二阶段);开始校准,对BBU电池执行放电;放电完成后,完成校准,并重新开始充电,直接达到最大电量,整个Learn Cycle才算完成 . 注意:如果第二或第三阶段被中断,重新校准的任务会停止,而不会重新执行. 再来说超级电容:超级电容优于锂电池,采用电容+Flash子板的方式来将非正常掉电后的脏数据刷入Flash中永久保存.超级电容在50℃环境下可以使用5年,而且故障率低,不用例行充放电.目前大部分raid卡厂商也转向使用超级电容+Flash的备电方案.
 采用MegaCli方式查看电池充放电周期:/opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -GetBbuProperties -aALL
 BBU Properties for Adapter: 0
 Auto Learn PerIOd: 90 Days
 Next Learn time: Mar 4 2017 11:04:46
 Learn Delay Interval:0 Hours
 Auto-Learn Mode: Transparent
 查看充电状态:/opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -GetBbuStatus -aALL |grep “Charge”
 Relative State of Charge: 50 %
 Charger Status: Recharging
 Full Charge Capacity: 509 mAh
 HP查看电容状态:hpssacli ctrl all show status
 Smart Array P440ar in Slot 0 (Embedded)
 Controller Status: OK
 Cache Status: OK
 Battery/Capacitor Status: OK
 惠普服务器为何没有同类问题?目前服务器除了HP服务器Raid卡采用镍氢电池、超级电容外,大部分服务器Raid卡还都采用的是锂电池.
 镍氢电池、超级电容,它没有惰性,并且特性和锂电池不同,它并不需要通过完全放电来校准电量.
 当镍氢电池由于自放电而导致电量降低时到一定程度时(比如80%),阵列卡控制器会感知到这一信息并对电池进行娟流充电以补充失去的电量,整个过程对用户是透明的,也不需要关闭缓存,因此并不会影响IO性能.
 各品牌服务器充放电周期: 所以,Raid卡电池充放电阶段,同时会造成性能的降低. 通过下面命令生成日志,可以查看充放电详细信息:/opt/MegaRAID/MegaCli/MegaCli64 -FwTermLog -Dsply -f log.txt -aALL
 除了Raid卡电池外,还有一个影响IO的重要因素那就是硬件自检.回到文章前面提到的监控图,同一业务的8台服务器于11月12日凌晨3:00开始IO开始升高,4:00左右达到最高峰IO利用率达70%左右,之后开始下降直至平稳正常.此系统已经平稳运行了很长时间,并没有做什么上线操作. 因为是凌晨3:00出现,而且备份正好是凌晨3:00开始,首先想到可能是备份导致的IO上升,但是登上服务器检查发现这几组机器并没有部署备份. 那么接下来可能会认为这段时间事物量较大,通过监控发现这个时间段并没有大量并发,而且此时间段为业务低峰期,相对访问操作较少. 开始着手分析硬件,怀疑为Raid卡电池导致,通过命令生成硬件自检及raid卡电池充放电日志1.log和2.log,部分日志内容如下: /opt/MegaRAID/MegaCli/MegaCli64 -AdpEventLog -GetEvents -aALL -f 1.logEvent DescriptIOn: Patrol Read started
 Event DescriptIOn: Consistency Check started on VD 00/0
 Event DescriptIOn: Patrol Read aborted on PD 1f(e0x00/s5)
 Event DescriptIOn: Patrol Read aborted on PD 20(e0x00/s1)
 Event DescriptIOn: Patrol Read aborted on PD 21(e0x00/s10)
 Event DescriptIOn: Patrol Read aborted on PD 1e(e0x00/s3)
 Event DescriptIOn: Patrol Read aborted on PD 25(e0x00/s0)
 Event DescriptIOn: Patrol Read aborted on PD 22(e0x00/s2)
 Event DescriptIOn: Patrol Read aborted on PD 23(e0x00/s8)
 Event DescriptIOn: Patrol Read aborted on PD 26(e0x00/s6)
 Event DescriptIOn: Patrol Read aborted on PD 27(e0x00/s7)
 Event DescriptIOn: Patrol Read aborted on PD 24(e0x00/s4)
 Event DescriptIOn: Patrol Read aborted on PD 29(e0x00/s11)
 Event DescriptIOn: Patrol Read aborted on PD 28(e0x00/s9)
 Event DescriptIOn: Consistency Check done on VD 00/0
 /opt/MegaRAID/MegaCli/MegaCli64 -FwTermLog -Dsply -aALL -f 2.log
    通过分析日志发现,此时Raid卡电池运行正常,也没有进行充放电.而是系统进行了硬件自检,时间是每周六凌晨3:00开始.而且这几台为同一批机器,再查看更久的监控,发现每周六凌晨3:00 都会出现IO较高现象.自检期间IO消耗比较大,如果期间有事物处理,会出现慢SQL、超时等现象,导致TP99报警. 问题原因找到了,该如何优化? 如果调整的话需进入BIOs修改,因为服务器产品不同,修改方法可能不一样. 以DELL、ThinkServer为例: (编辑:宣城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |