通过crash工具现场了解到由于cd命令一直获取不到读写锁导致处于D状态,通过该锁own找到已获取的进程,并通过proc下该进程内核调用栈,通过调用栈了解到此进程一直在cgroup申请内存一直申请不到导致,基本可以确定是由于cgroup内存分配不足导致,调整该cgroup内存即可。那为啥没有杀进程了,是由于该cgroup下祖宗进程的oom_score分为-1000导致所fork子进程都不会杀掉,messages日志打印也可佐证
使用x/400gx $rsp打印出栈顶自上3200字节信息,由于栈底在栈数据中很容易就可分析多个可疑栈,而rip在栈顶数据边上,通过x/i 很容易找到调用函数,通过反汇编查看每个函数的栈扩张情况,从而得出可疑栈
通过crash工具现场了解到由于cd命令一直获取不到读写锁导致处于D状态,通过该锁own找到已获取的进程,并通过proc下该进程内核调用栈,通过调用栈了解到此进程一直在cgroup申请内存一直申请不到导致,基本可以确定是由于cgroup内存分配不足导致,调整该cgroup内存即可。那为啥没有杀进程了,是由于该cgroup下祖宗进程的oom_score分为-1000导致所fork子进程都不会杀掉,messages日志打印也可佐证...
使用x/400gx $rsp打印出栈顶自上3200字节信息,由于栈底在栈数据中很容易就可分析多个可疑栈,而rip在栈顶数据边上,通过x/i 很容易找到调用函数,通过反汇编查看每个函数的栈扩张情况,从而得出可疑栈...
添加客服微信,免费为您安排与该工程师直接沟通
长按二维码添加客服微信
如该工程师当前档期不合,也可免费为您推荐相似候选人