//配置内核生成crash文件(尽量采用rt进程去控制,因为系统卡死时,rt喂狗进程还在跑)
/ 不同的cpu的ramdump抓取方法不同:Redhat Crash Utility-Ramdump - yjbjingcha - 博客园 (cnblogs.com)
//crash工具的使用
// 通过设置/proc/sys/kernel/sched_rt_runtime_us 和/proc/sys/kernel/sched_rt_period_us配合实现;sched_rt_period_us默认值是1s(1000000us),sched_rt_runtime_us默认是0.95s(950000us);通过此项配置的RT进程利用率,是针对整个CPU的,对于多核处理器,每个CPU仍然可以跑到100%,那么怎么让每cpu的利用率都是95%呢?可以设置
echo NO_RT_RUNTIME_SHARE > /sys/kernel/debug/sched_features;这样每个核不去借用别的cpu时间,可以达到95%的限制
// kernel/sched/features.h
SCHED_FEAT(RT_RUNTIME_SHARE,faulse)
//记录top到指定文件,cat -n top.log 查看
top -b -d 1 | grep ^top -A 10 > top.log
//3.3.3 内核态调测工具:kdump&crash——crash解析 - 知乎 (zhihu.com)
分析dump文件需要内核vmlinux,安装对应内核的dbgsym包
cuibixuan@cuibixuan-virtual-machine:~$ uname -r 5.0.0-27-generic cuibixuan@cuibixuan-virtual-machine:~$ sudo apt-cache search linux-image |grep dbgsym |grep 5.0.0-27-generic linux-image-unsigned-5.0.0-27-generic-dbgsym - Linux kernel debug image for version 5.0.0 on 64 bit x86 SMP linux-image-5.0.0-27-generic-dbgsym - Signed kernel image generic cuibixuan@cuibixuan-virtual-machine:~$ sudo apt-get install linux-image-5.0.0-27-generic-dbgsym crash /usr/lib/debug/lib/modules/[内核版本]/vmlinux dump.202001301611
// https://github.com/crash-utility/crash/releases
//crash参数解释
crash-utility.github.io/help_pages/list.html
// crash工具与ftrace工具一起使用