littlebot
Published on 2025-04-07 / 0 Visits
0

【源码】基于Python和BCC框架的Linux内核内存分配追踪系统

项目简介

本项目借助bpf技术,对Linux内核中通过alloc_page函数进行的内存分配情况展开追踪与统计。为隐藏在内核里、难以察觉的高内存占用进程或驱动提供有效的监控手段,助力用户了解哪些进程或驱动大量运用alloc_page分配内存,从而优化内存使用或开展故障排查工作。

项目的主要特性和功能

  • 对所有通过alloc_pages进行的内存分配情况进行追踪与统计。
  • 识别并过滤出占用内存最多的路径或进程。
  • 运用BCC工具进行开发,可识别内核和用户进程的alloc_pages调用信息并统计输出。

安装使用步骤

假设用户已经下载了本项目的源码文件。 1. 环境准备:确保系统安装了bpf相关工具(如BCC),并且内核版本支持bpf技术。 2. 编译模块:进入module目录,使用make命令编译内核模块alloctrace.c。 3. 加载模块:使用insmod命令加载编译好的模块,加载后每次alloc_page调用都会被追踪和统计。 4. 运行bcc脚本:进入bcc目录,运行gfp.py脚本,该脚本会收集并解析alloc_pages的调用信息。运行前需确保已安装Python和bcc的相关依赖。 5. 查看结果:运行脚本后,查看输出信息了解哪些进程或驱动大量使用alloc_page进行内存分配。 6. 卸载模块:使用rmmod命令卸载内核模块以停止追踪。卸载前确保没有正在使用追踪工具,防止数据丢失。

提醒:这是内核级工具,使用时需谨慎并理解其工作原理和潜在风险,不当使用可能影响系统稳定性。项目仍在开发中,存在一些限制和未完成任务(如特定驱动的调用信息追踪等),使用时需注意并根据实际情况调整改进。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】