![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux稳定性问题总结
主要记录重点问题分析过程
Robin.Yin
一只勤勉的小虫,如痴如醉地沉迷于书卷,孜孜不倦地咀嚼着文字-书虫
展开
-
spinlock引起系统softlockup分析
业务反馈机房中有机器经常假死,业务无响应,登陆上去分析,原来是发生了softlockup.一 softlockup发生原因1.等待锁资源(spinlock)2.进程一直在某个循环运行,缺少调度检查(cond_resched())3.当前任务关抢占时间太长(preempt_disable,spin_lock())4.中断风暴(irq storm)导致CPU无法进行调度5.softirq/tasklet执行时间太长,导致CPU无法进行调度二 分析过程1,首先查看引起softloc原创 2020-11-20 13:01:13 · 1113 阅读 · 0 评论 -
Linux 内核调用栈解析
1.pushl和poplpushl和popl指令来说操作的是栈,栈的基地址由%ebp来指定,栈顶元素由%esp来指定,%esp指向的就是栈顶元素。将一个双字压入栈中,首先要将%esp减4,然后将双字写入%esp指向的栈顶位置;弹出一个双字,首先要将%esp加4,然后将%esp指向的栈顶元素取出2.call和ret指令call lable //函数调用,会把call指令下一条指令push到栈leave //函数调用返回前的准备,也就是movl %ebp, %esp; popl %eb...原创 2020-10-27 10:30:21 · 936 阅读 · 0 评论 -
CPU超卖导致Guest OS Softlockup分析
1.问题背景一台具有96个vCPU的VM上,Guest OS出现大量的SoftLockup,最后导致系统宕机.2.分析过程2.1 什么情况下出现Softlockup 简单点就是当CPU一定时间内不能进行进程调度时,会出现Softlockup,不能调度的原因有:1.进程关抢占后长时间执行,2.softirq执行时间太长,3.中断风暴. 4.内核执行路径太长(服务器内核默认是不可能抢占),5.spinlock问题2.2 堆栈分析 看了几个cpu的堆栈,RIP大部分在smp_...原创 2020-10-14 11:25:19 · 2762 阅读 · 0 评论