项目简介
本项目是基于C语言构建的内存分级扩展系统,借助DRAM和内存压缩/高性能存储介质构建多级内存存储,实现内存数据的冷热分级管理。通过将冷数据从内存迁移至高性能存储介质,达成内存容量扩展与成本降低的目标。
项目的主要特性和功能
- 内存分级扩展:利用DRAM和高性能存储介质(如AEP)构建多级内存存储,实现内存数据的冷热分级管理。
- 冷数据迁移:把冷数据从内存迁移到高性能存储介质,释放内存空间,降低内存成本。
- 多引擎支持:支持slide、cslide和thirdparty等多种内存扩展引擎,满足不同场景需求。
- 配置灵活:可通过配置文件灵活设置内存扫描周期、扫描次数、内存冷热阈值等信息。
- 系统集成:支持与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】