欢迎来到【qq 群发器源码】【乌苏网站源码】【经典趋势源码】1616新闻源码_新闻app源码-皮皮网网站!!!

皮皮网

【qq 群发器源码】【乌苏网站源码】【经典趋势源码】1616新闻源码_新闻app源码-皮皮网 扫描左侧二维码访问本站手机端

【qq 群发器源码】【乌苏网站源码】【经典趋势源码】1616新闻源码_新闻app源码

2024-12-22 22:08:46 来源:{typename type="name"/} 分类:{typename type="name"/}

1.由Docker BUG引起的新闻新闻Linux宕机事故及解决办法

1616新闻源码_新闻app源码

由Docker BUG引起的Linux宕机事故及解决办法

       1背景

       某运营商业务系统的服务器发生宕机,针对本次宕机事故进行排查。源码p源

       文章福利小编推荐自己的新闻新闻Linux内核源码交流群: 整理了一些个人觉得比较好的学习书籍、视频资料共享在群文件里面,源码p源有需要的新闻新闻可以自行添加哦!!源码p源qq 群发器源码!新闻新闻前名可进群领取,源码p源并额外赠送一份价值的新闻新闻内核资料包(含视频教程、电子书、源码p源实战项目及代码)!新闻新闻

       学习直通车: Linux内核源码/内存调优/文件系统/进程管理/设备驱动/网络协议栈

       2解决过程

       我们都知道kdump是源码p源在Linux系统崩溃、死锁、新闻新闻乌苏网站源码死机的源码p源时候用来转储内存运行参数的服务。系统崩溃后内核无法正常工作,新闻新闻这时kdump会产生一个用于capture当前运行信息的内核,将此时的内存中的所有运行状态和数据信息收集到vmcore文件中,收集完成后系统将自动重启。本次使用crash分析linux kdump日志。经典趋势源码

       进入crash控制台

       PANIC为内核崩溃类型,这里是一个BUG,内核无法处理空指针

       在crash查看log,发现有很多Out-of-Memory

       通过bt查看系统崩溃前内核依次调用的一系列函数,查看内核在何处崩溃。以"# 数字"开头的python电影源码行为调用堆栈:

       通过bt分析,可以定位到崩溃前的一个exception是ip寄存器RIP的异常,使用dis命令来看一下该地址的反汇编结果:

       从上面的反汇编结果中,我们看到问题出在ip6mr.c文件行代码,翻开linux源码的相应位置:

       撸内核源码 + Google

       通过走读Linux源码和Google,发现当系统创建新的namespaces时,会因为ip6mr_sk_done的陪护网源码值为空而引起系统混乱,从而导致内核无法正常分配内存,所以我们在log文件中看到了许多Out-of-Memory。

       在Kubernetes环境,提到namespaces就能想到docker,因为namespaces是docker的核心技术之一,容器的资源隔离由namespace来实现。

       通过检查docker的网络,发现其中一个子网为空

       解决办法

       内核配置加入"net.ipv6.conf.all.disable_ipv6 = 1",关闭 IPV6,防止触发 docker BUG;

       从内核的层面看,目前该Issue仍然没有close。在开启IPv6的环境,docker为什么会出现这个BUG,后续有空再研究,欢迎大家指正。

       3END

       Linux 内核虽然号称“不死族”,几乎不会崩溃或死机,但也有特殊情况,设备也有一定的使用周期,系统的高可用还是要的。

       虽然你单点运行服务时很帅,但是你处理故障时的样子真的很狼狈。

       往期精彩推荐:

       最新干货!使用eBPF LSM热修复Linux内核漏洞

       盘点那些Linux内核调试手段——内核打印

       Linux 环境下网络分析和抓包是怎么操作的?

       浅谈ARMLinux内核页表的块映射

       Linux性能观测之dstat命令详解