kernel内核调试debug相关

先写一些片段化的,实例化的,写多了再写总结性的

内核调优debug,感官上主要处理一些系统卡死,cpu运行异常(比如异常处于高负载等)的场景

需要了解一些关于cpu运行的指标参数,,,

需要能追踪哪个cpu运行进程数量,运行周期,,

需要用到一些芯片厂商带的内核分析工具或者linux社区的工具,所以熟悉工具使用

下面按照这个思路展开:

在工作生活中,我们时常会遇到一些性能问题:比如手机卡顿了;造成性能问题的原因多种多样,可能是网络延迟高、磁盘 IO 慢、调度延迟高、内存回收等,这些最终都可能影响到用户态进程,进而被用户感知。

为了方便调试和测试代码健壮性,内核提供了许多与内核调试相关的配置选项。这些选项大部分都在内核配置编辑器的内核开发(kernel hacking)菜单项中。在内核配置目录树菜单的其他地方也还有一些可配置的调试选项。

1,打开nconfig

make nconfig

sudo apt install make

sudo apt install gcc

sudo apt install pkg-config

sudo apt install libncurses-dev

kernel内核调试debug相关_第1张图片

我特么  需要配置啥是吧   放弃了   以后再说,总之打开内核配置以后是这样的

2,配置config

printk and dmesg options

kernel内核调试debug相关_第2张图片

PRINTK_CALLER:调用进程

DYNAMIC_DEBUG:动态打开log打印

Memory Debugging

kernel内核调试debug相关_第3张图片

DEBUG_PAGEALLOC:用于跟踪和验证 page 分配和释放

SLUB_DEBUG: 启用SLUB debug支持, 还有一些调试信息比如/proc/slabinfo

SLUB_DEBUG_ON: 打开SLUB debug, 更精细的控制 kernel command line:slub_debug=*

PAGE_OWNER: page分配跟踪,还需要打开page_owner=on

Debug Oops, Lockups and Hangs

kernel内核调试debug相关_第4张图片

PANIC_ON_OOPS:发生oops时直接panic

SOFTLOCKUP_DETECTOR:检测软锁,cpu跑飞死循环了

BOOTPARAM_SOFTLOCKUP_PANIC:检测到softlockup立刻panic

DETECT_HUNG_TASK:hung task 检测,默认120S

WQ_WATCHDOG: workqueue stall检测

SCHEDSTATS:调度状态

DEBUG_PREEMPT:检测非安全抢占

Kmemleak

  • Kmemleak 是 Linux 内核的一个工具,专门用于检测和报告内核中的动态内存泄漏。你可以通过配置内核并加载 kmemleak 模块来使用它。

  • 在内核配置中启用 CONFIG_DEBUG_KMEMLEAK。

  • 在启动时添加 kmemleak=on 内核参数。咋启用,编译的时候?

  • 查看 /sys/kernel/debug/kmemleak 目录下的文件,以获取泄漏报告

kernel内核调试debug相关_第5张图片

啥啥啥  以后接着再看吧

参考链接:

提升Linux内核性能:内存调优的关键技巧 - 知乎

menuconfig 和、Kconfig 介绍及例子解析! - 知乎

你可能感兴趣的:(linux,运维,服务器)