Skip to content

mem_watcher 项目:目标是分析主机中指定进程或者服务内存使用情况 #545

@helight

Description

@helight

mem_watcher 项目:目标是分析主机中指定进程或者服务内存使用情况。比如当处于流量高峰时间段时,服务可能会进入高负载状态。本课题要求能够在一般主机环境下都可以进行内核系统和进程的内存分析,内存的分配回收,缺页、越界,泄露等等。本题目要求在LMP现有子项目(https://github.com/linuxkerneltravel/lmp/tree/develop/eBPF_Supermarket/Memory_Subsystem),基础之上继续迭代,并合并LMP下现有内存监测功能。
实现目标:
●主机环境下对系统内存进行分析,可以统计内存的分配回收,缺页等相关指标。
●主机环境下对指定进程进行分析,如申请和命中预分配,内存越界和内存泄露检测。
●对采集数据进行可视化展示,使用prometheus,grafana进行展示
●项目完整可运行,在github上有自动化测试流程,有单元测试和集成测试
项目技术要求
● 熟悉Linux内核内存系统的技术原理
● 熟悉Linux eBPF技术,能够通过eBPF实现内核事件的解析
运行要求:
● 运行系统: ubuntu22.4 以上
●场景验证:能在主机场景下完成课题实现目标,并有测试分析报告。
●文档丰富:具有Readme,设计文档等。

Done

  • mem_watcher 项目创建
    Add Makefile #576 建立mem_watcher项目
  • memleak 所有内存相关能力整合到 mem_watcher 项目
  • memstat 所有内存相关能力整合到 mem_watcher 项目

TODO

  • paf所有内存相关能力整合到 mem_watcher 项目
  • pr所有内存相关能力整合到 mem_watcher 项目
  • 增加 Readme 文件,对 mem_watcher 的代码结构,功能能力、用法和使用场景进行详细说明。
  • 规范 mem_watcher 中相关文件的文件名。
  • 清理已经合并到 mem_watcher 后,不用的代码:memleak,memstat,paf,pr 等代码文件夹进行清理
  • 计算UMA内存碎片化程度功能
  • 添加计算NUMA架构下,所有内存节点的相关信息获取
  • 计算在NUMA架构下内存碎片化程度
  • 监控SLAB 分配器的内存使用情况
  • 跟踪共享内存的用量信息

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions