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

【源码】基于C语言的内存分级扩展系统

项目简介

本项目是基于C语言构建的内存分级扩展系统,借助DRAM和内存压缩/高性能存储介质构建多级内存存储,实现内存数据的冷热分级管理。通过将冷数据从内存迁移至高性能存储介质,达成内存容量扩展与成本降低的目标。

项目的主要特性和功能

  1. 内存分级扩展:利用DRAM和高性能存储介质(如AEP)构建多级内存存储,实现内存数据的冷热分级管理。
  2. 冷数据迁移:把冷数据从内存迁移到高性能存储介质,释放内存空间,降低内存成本。
  3. 多引擎支持:支持slide、cslide和thirdparty等多种内存扩展引擎,满足不同场景需求。
  4. 配置灵活:可通过配置文件灵活设置内存扫描周期、扫描次数、内存冷热阈值等信息。
  5. 系统集成:支持与systemd集成,实现系统启动时自动启动etmemd服务。

安装使用步骤

假设用户已经下载了本项目的源码文件,可按以下步骤操作:

1. 编译依赖

etmem的编译和运行依赖于libboundscheck组件。

2. 编译项目

bash $ cd etmem $ mkdir build $ cd build $ cmake .. $ make

3. 运行依赖

运行etmem需要插入etmem_scan和etmem_swap模块: bash $ modprobe etmem_scan $ modprobe etmem_swap

4. 启动etmemd

bash $ etmemd -l 0 -s etmemd_socket

5. 配置文件

在运行etmem进程之前,需配置etmem配置文件,规划需要内存扩展的进程信息,配置内存扫描周期、扫描次数、内存冷热阈值等。 示例配置文件路径: bash /etc/etmem/cslide_conf.yaml /etc/etmem/slide_conf.yaml /etc/etmem/thirdparty_conf.yaml

6. 创建和删除项目/引擎/任务

通过etmem命令创建或删除项目、引擎和任务: bash $ etmem obj add -f /etc/etmem/slide_conf.yaml -s etmemd_socket $ etmem obj del -f /etc/etmem/slide_conf.yaml -s etmemd_socket

7. 启动和停止项目

bash $ etmem project start -n test -s etmemd_socket $ etmem project stop -n test -s etmemd_socket

8. 自动启动

配置systemd配置文件,以fork模式启动etmemd: bash $ etmemd -l 0 -s etmemd_socket -m

注意事项

  • 运行etmem需要root权限。
  • etmem的客户端和服务端需要在同一服务器上部署,不支持跨服务器通信。
  • 禁止并发扫描同一个进程。

参与贡献

欢迎对本项目感兴趣的开发者提交Pull Request,参与项目的开发和维护。

下载地址

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