设备型号:KunTai R2280
硬件配置:SAS3508、SAMSUNG MZ7LH480HAHQ-00005、TOSHIBA AL15SEB24EQ、LPe12000
BMC版本:3.01.12.49
BIOS 版本:1.83.K
CPLD版本:6.02
客户反馈3台设备5月6日八九点钟出现业务数据库访问不了问题,重启设备后恢复
3.1.1查看current_event日志文件,当前服务器状态正常,无告警
3.1.2 查看sel事件记录,宕机时无硬件异常信息
2.1.3 进一步分析fdm_log,发现日志内有内存CE(correct error)情况,非宕机原因
查看dmesg日志文件,发现有block超时情况,导致内核hung死,从时间上看为:2024/05/06 09:07分左右,与出现问题时间一致。三台机器dmesg信息均有block超时情况。
故障非硬件原因导致,根据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