• mile米乐M6

    服务器 2024-06-18

    KunTai R2280服务器数据库无法访问

    一、现网描述

    1.1 环境描述

    设备型号:KunTai R2280

    硬件配置:SAS3508、SAMSUNG MZ7LH480HAHQ-00005、TOSHIBA AL15SEB24EQ、LPe12000

    BMC版本:3.01.12.49

    BIOS 版本:1.83.K

    CPLD版本:6.02


    二、故障描述

    2.1故障现象

    客户反馈3台设备5月6日八九点钟出现业务数据库访问不了问题,重启设备后恢复


    三、问题分析

    3.1 硬件日志分析

    3.1.1查看current_event日志文件,当前服务器状态正常,无告警

    image.png

    3.1.2 查看sel事件记录,宕机时无硬件异常信息

    image.png

    2.1.3 进一步分析fdm_log,发现日志内有内存CE(correct error)情况,非宕机原因

    image.png

    3.2 系统日志分析

    查看dmesg日志文件,发现有block超时情况,导致内核hung死,从时间上看为:2024/05/06 09:07分左右,与出现问题时间一致。三台机器dmesg信息均有block超时情况。

    image.png

    3.3分析结论

    故障非硬件原因导致,根据os日志分析结论,为“task kbha : ***blocked for more than 120 seconds”导致

    "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"内核hung

    可能原因:linux会使用最多40%的可以内存作为文件系统缓存,当超过阈值后,文件系统会把缓存中的内容全部写入磁盘,导致后续的IO请求都是同步的,缓存写入磁盘有一个默认的120秒的超时时间,导致请求堆积,系统内存被占用,导致系统失去响应。


    四、问题解决

    修改系统下参数 vm.dirty,vm.dirty_background_ratio进行调优设置

    设置方法

    (单次生效)

    sysctl -w vm.dirty_ratio=10

    sysctl -w vm.dirty_background_ratio=5

    sysctl -p

    (永久生效,需要重启)

    vi /etc/sysctl.conf

    vm.dirty_background_ratio=5

    vm.dirty_ratio=10