为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
Linux


晚上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就没问题,要后面继续研究了

总结:

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

©著作权归作者所有:来自51CTO博客作者opsfans的原创作品,如需转载,请注明出处,否则将追究法律责任

virtio服务器卡死Linux系统


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消