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

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

2,配置config

printk and dmesg options

PRINTK_CALLER:调用进程

DYNAMIC_DEBUG:动态打开log打印

Memory Debugging

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

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 目录下的文件,以获取泄漏报告

啥啥啥  以后接着再看吧

参考链接:

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

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

  • 12
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值