项目简介
本项目借助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】