记录一次服务器“卡死”故障的解决过程

晚上8点多突然收到zabbix报警,服务器负载高,IO负载高。看到报警信息马上就猜到,老问题又出现了上次的方法没能解决问题,故障回顾

故障背景:
系统:ubuntu 14.04
服务器:kvm虚拟机

故障现象:
1.系统存在大量僵死进程,kill -9杀不掉
2.系统IO负载很高
3.执行命令时,终端会卡死
4.reboot无法正常重启服务器,只能杀虚拟机进程
5.系统日志里有以下信息 INFO: task jbd2/vda1-8:775 blocked for more than 120 seconds.
记录一次服务器“卡死”故障的解决过程

上次出现这个问题是3天前,当时网上查阅资料说是将内存脏页数据刷入磁盘时出现了问题,导致系统阻塞了很多其他进程,从而产生大量僵死进程,按照网上方法,修改调整内核参数:

vm.dirty_ratio = 10
vm.dirty_background_ratio = 5

-------------------------------回顾到此结束--------------------------------

登陆服务器一看,果然还是这个问题,很显然上次的内核参数调整没能解决问题,接下来继续分析,通过一番检查有以下突破性新发现:
1.操作时使用tab补全命令会导致终端卡死,不使用tab则可以正常执行命令
2.一个核心的cpu 100%花在了IO等待上

第一个发现让我想起了一次以前处理故障的经历,/tmp目录满了,导致一使用tab补全命令就卡死,跟今天现象一样,马上检查/tmp分区使用情况,du命令发现/tmp分区是挂载在一个单独100G的硬盘上,只使用了60M,排除空间问题。接着尝试touch /tmp/test测试分区的读写,问题出现了,终端卡死,/tmp分区无法读写,找到了问题突破口

为什么这个分区会无法读写呢,继续排查,mount -l /tmp强制卸载分区然后重新挂载,问题依旧,/tmp无法读写。接着登陆虚拟机控制台,查看块独立硬盘的信息,发现这块独立硬盘用的VirtIO模式,其他硬盘都是IDE模式,很可能问题出在这里。于是新增了一个IDE的硬盘,替换了VirtIO硬盘,然后后重新挂载格式化并重新挂载到/tmp,故障处理告一段落,处理完到今天5天了,问题没在出现,基本可以确定问题是出在虚拟硬盘的模式了。更深一层,为什么virtIO有问题IDE就没问题,要后面继续研究了

总结:
故障第一次出现时没有足够重视,没有深入分析,直接搬用网上”解决方案“,导致故障第二次出现。网上资料很多,也很有用,但要结合实际情况取舍,遇到问题要能独立思考并结合自己以前的经验多分析,提高自己分析问题能力的同时让自己的知识更加融会贯通

转载于:https://blog.51cto.com/13719882/2128041

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值