UBTurbo部署全攻略:从依赖安装到集群环境配置的 step-by-step 指南
【免费下载链接】ubturboUB Turbo is based on the hardware-enhanced hot and cold identification capabilities, providing hierarchical memory management, including memory migration, hot and cold data flow, etc, and accelerating application performance.项目地址: https://gitcode.com/openeuler/ubturbo
前往项目官网免费下载:https://ar.openeuler.org/ar/
UBTurbo是一款开源的节点内资源管理框架,基于硬件增强的冷热识别能力,提供包括内存迁移、冷热数据流等在内的多级内存管理,加速应用性能。本文将为您提供从依赖安装到集群环境配置的完整部署指南,帮助新手用户快速上手UBTurbo。
一、UBTurbo简介
UBTurbo具备配置读取、插件加载、日志打印和IPC通信能力,集成SMAP能力提供基础的多级内存调度服务。在虚拟化场景中,RMRS内存迁移工具基于UBTurbo框架开发,并运行在UBTurbo进程中,通过IPC与SMAP能力对外提供内存迁移决策与执行服务。
UBTurbo架构图:展示了UBTurbo的核心组件及其交互关系
二、环境准备
2.1 系统要求
- 操作系统:openEuler 22.03或更高版本
- 架构:aarch64
- 权限:需要root用户权限执行安装与启动
2.2 依赖检查
UBTurbo依赖以下组件:
- SMAP:提供内存冷热识别和迁移能力
- UB DMA:提供异步内存拷贝能力
- libvirt:用于虚拟化场景(可选)
- numactl:用于NUMA节点管理
三、安装步骤
3.1 准备工作
首先,克隆UBTurbo仓库:
git clone https://gitcode.com/openeuler/ubturbo cd ubturbo3.2 创建ubturbo用户和组
使用以下命令创建系统用户和组:
SYSTEM_USER="ubturbo" SYSTEM_GROUP="ubturbo" # 一行初始化:先定义日志函数,再创建组和用户 ( log_message() { echo "[$(date +'%Y-%m-%d %H:%M:%S')] $1: $2"; } handle_error() { log_message "ERROR" "$1"; exit 1; } # 创建系统组(-r 表示系统组) if ! getent group "$SYSTEM_GROUP" > /dev/null; then groupadd -r "$SYSTEM_GROUP" || handle_error "Failed to create group $SYSTEM_GROUP" log_message "INFO" "Group $SYSTEM_GROUP created" else log_message "INFO" "Group $SYSTEM_GROUP already exists" fi # 创建系统用户(-r 系统用户,-g 指定组,-s 指定 shell) if ! getent passwd "$SYSTEM_USER" > /dev/null; then useradd -r -g "$SYSTEM_GROUP" -s /sbin/nologin "$SYSTEM_USER" || handle_error "Failed to create user $SYSTEM_USER" log_message "INFO" "User $SYSTEM_USER created" else log_message "INFO" "User $SYSTEM_USER already exists" fi )3.3 安装SMAP
SMAP是UBTurbo的核心依赖,提供内存池化和冷热数据迁移能力。
3.3.1 安装前准备
# 关闭numa_balancing和透明大页 echo 0 > /proc/sys/kernel/numa_balancing echo 0 > /proc/sys/vm/compaction_proactiveness echo never > /sys/kernel/mm/transparent_hugepage/defrag echo never > /sys/kernel/mm/transparent_hugepage/enabled # 安装libvirt(虚拟化场景) yum install -y qemu* libvirt* systemctl start libvirtd3.3.2 安装SMAP包
rpm -ivh smap-x.x.x-x.oe2403sp1.aarch64.rpm3.3.3 加载SMAP驱动
cd /lib/modules/smap insmod smap_tracking_core.ko insmod smap_histogram_tracking.ko insmod smap_access_tracking.ko smap_scene=2 # 虚拟化场景3.3.4 验证SMAP安装
lsmod | grep tracking成功安装会显示类似以下输出:
smap_access_tracking 65536 0 smap_histogram_tracking 28672 1 access_tracking smap_tracking_core 28672 1 smap_access_trackingSMAP架构图:展示了SMAP的核心模块和工作流程
3.4 安装UB DMA(可选)
UB DMA提供基于URMA的异步内存拷贝能力,用于内存借用场景。
# 安装UB DMA rpm包 rpm -ivh --force ubturbo-ubdma-1.0.0-2.oe2403sp3.arrch64.rpm # 加载UB DMA驱动 insmod /lib/modules/ub_dma/ub_dma.ko # 验证安装 lsmod | grep ub_dma3.5 安装UBTurbo
rpm -ivh ubturbo-rmrs-1.1.1-1.oe2203sp1.aarch64 --force安装完成后,UBTurbo的目录结构如下:
| 目录 | 用途说明 | 权限 | 所属用户组 |
|---|---|---|---|
| /opt/os_turbo | 程序根目录 | 750 | ubturbo:ubturbo |
| /opt/os_turbo/bin | 可执行文件目录 | 500 | ubturbo:ubturbo |
| /opt/os_turbo/conf | 配置文件目录 | 700 | ubturbo:ubturbo |
| /opt/os_turbo/lib | 动态库目录 | 500 | ubturbo:ubturbo |
| /var/log/os_turbo | 日志目录 | 700 | ubturbo:ubturbo |
验证安装是否成功:
rpm -qa | grep ubturbo-rmrs成功安装会显示类似以下输出:
ubturbo-rmrs-*.aarch64四、配置UBTurbo
4.1 配置文件说明
UBTurbo的主要配置文件位于/opt/os_turbo/conf/目录下,包括:
ubturbo.conf:主配置文件ubturbo_plugin_admission.conf:插件准入配置文件
4.2 修改主配置文件
编辑ubturbo.conf文件,主要配置项如下:
| 参数 | 说明 | 取值 |
|---|---|---|
| log.level | 日志等级 | 默认值:INFO,取值范围:DEBUG、INFO、WARN、ERROR、CRIT |
4.3 启用插件
UBTurbo默认不启用任何插件,需要在ubturbo_plugin_admission.conf中手动启用:
# 取消以下行的注释以启用RMRS插件 rmrs=777插件启用后,可以通过以下命令验证:
cat /var/log/ubturbo/ubturbo.log | grep "loaded successfully"RMRS迁移策略:展示了RMRS的基线迁移策略流程
五、启动与管理UBTurbo
5.1 启动服务
systemctl start ubturbo5.2 查看服务状态
systemctl status ubturbo状态为active表示服务已成功启动。
5.3 查看进程
ps -ef | grep ubturbo5.4 查看日志
journalctl -u ubturbo启动成功的标志是日志中出现TurboMain::Run end。
5.5 常用命令
| 命令 | 说明 |
|---|---|
systemctl start ubturbo | 启动服务 |
systemctl status ubturbo | 查看服务状态 |
systemctl stop ubturbo | 停止服务 |
systemctl restart ubturbo | 重启服务 |
rpm -Uvh ubturbo-rmrs-*.aarch64.rpm | 升级软件包 |
rpm -Uvh --oldpackage ubturbo-rmrs-*.aarch64.rpm | 回退软件包 |
六、集群环境配置(进阶)
6.1 多节点部署注意事项
- 所有节点需要使用相同版本的UBTurbo和依赖组件
- 确保节点间网络通畅,特别是URMA通信所需的端口
- 同步所有节点的配置文件,保持一致性
6.2 性能优化配置
SMAP提供了多种性能优化算法,可以通过修改配置文件调整:
# 编辑SMAP配置文件 vi /opt/os_turbo/conf/period.configSMAP性能算法:展示了SMAP的内存访问跟踪算法
七、故障排除
7.1 常见问题解决
服务启动失败
- 检查日志文件:
/var/log/ubturbo/ubturbo.log - 确保所有依赖驱动已正确加载
- 检查配置文件格式是否正确
- 检查日志文件:
插件加载失败
- 确认插件动态库已放置在
/opt/ubturbo/lib目录 - 检查插件配置文件是否存在于
/opt/ubturbo/conf目录 - 查看日志中是否有插件初始化错误信息
- 确认插件动态库已放置在
内存迁移不工作
- 检查SMAP驱动是否正常加载
- 确认系统NUMA配置正确
- 检查
/dev/shm/smap_config文件权限
7.2 日志查看
UBTurbo的日志文件位于/var/log/ubturbo/ubturbo.log,可以通过以下命令实时查看:
tail -f /var/log/ubturbo/ubturbo.log八、总结
通过本文的指南,您已经掌握了UBTurbo的完整部署流程,包括依赖安装、配置修改、服务管理和故障排除。UBTurbo作为一款强大的节点内资源管理框架,能够有效提升应用性能,特别是在虚拟化和内存密集型场景中。
如果您需要更详细的开发指南或API文档,可以参考以下资源:
- UBTurbo开发者指南
- SMAP用户指南
- RMRS设计文档
祝您使用UBTurbo愉快!🚀
【免费下载链接】ubturboUB Turbo is based on the hardware-enhanced hot and cold identification capabilities, providing hierarchical memory management, including memory migration, hot and cold data flow, etc, and accelerating application performance.项目地址: https://gitcode.com/openeuler/ubturbo
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考