服务器宕机的问题分析 从驱动程序和进程变量解决



      服务器宕机状况出现一种较为罕见的状况摸式,便是看上去完全不相关的设备与此同时发生

服务器宕机。解决这一摸式的状况,大家须要寻找在这种设备能够与此同时促发状况的必要条

件。一般 ,这种设备要不基本上在同一时间段点发生状况,要不从某1个时间点开始,陆续发生

状况。针对前一类状况,较为比较常见的情况是,物理设备系统故障造成运行在其上的整个vm

虚拟机服务器宕机,或是1个远程访问APP与此同时杀掉了好几个系统的重要系统进程;针对后

一类状况,很有可能的1个根本原因是,客户在整个实例上布署了相同有什么问题的功能模块

(APP、驱动程序)。
 
 
 
而实例被大规模地功击,则是另1个比较常见的根本原因。例如在WannaCry勒索病毒肆虐的情

况下,常有某些企业,或是某些单位的设备整个电脑蓝屏的情况。在这个实例中,客户安装使

用了阿里云服务器的云监控产品以后,发生了大规模网站服务器持续服务器宕机的状况。为了

更好地自证清白,大家消耗了许多 精力智力来详细分析这个问题。依据此案例分析,期望能

给阅读者以启迪。启用栈,表明客户摸式的系统进程,有一次grpc的系统进程,随后这一启用

进入了核心摸式。而图3中的启用栈显而易见是有什么问题的,由于大家即使查遍整个的文本

文档,也不会寻找1个系统进程,会相匹配于核心__stack_chk_fail变量。
 
 
这儿须要建议的是,这里引出来此外1个,在深入分析运行内存转储的情况下须要留意的状况

,便是用bt复印出来的启用栈有的情况下是不正确的。说白了的启用栈,实际上并不是一类

程序设计。用bt复印出来的启用栈,实际上是以真真正正的程序设计,进程核心局部变量中

,依据相应的优化算法重新构建出来的。而这一重新构建系统进程,实际上是调用函数系统

进程的1个反向工程。坚信大家都了解局部变量的特点,即先进先出。有关调用函数,及其

局部变量的应用,能够参照图5。能够见到,每一个调用函数,都是会在局部变量上划分到

相应的空间。而CPU实行每一个调用函数命令call,都是会同时把这一条call命令的下一条

命令压栈。这种“下一条命令”,便是说白了的变量回到具体位置。服务器宕机状况的运行内

存转储深入分析,须要大家充足的细心。我本人的1条工作经验是everybITablazers,便是

不要再错过其他1个bIT的数据信息。运行内存转储由于机制自身的根本原因,和转化成系

统进程中某些任意的要素,必定会出现数据信息不一致的状况,因此许多 情况下,一个小

的结果,须要从不一样的视角去检验。
分享: