使用DFOT需要安装以下依赖组件,可通过yum直接安装,当前支持openEuler-22.03-LTS-SP4、openEuler-25.03
组件 |
代码仓 |
说明 |
---|---|---|
oeAware-manager |
业务在线无感调优框架 |
|
libkperf |
轻量级全内存化采集工具 |
|
sysboost |
微架构优化工具 |
|
llvm-bolt |
二进制优化器 |
被优化二进制需要带有重定位信息:
1. 使用自编译的软件:需要在编译时增加-Wl,-q链接选项,如MySQL:
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DBUILD_CONFIG=mysql_release -DWITH_BOOST=../boost -DCMAKE_C_LINK_FLAGS="-Wl,-q" -DCMAKE_CXX_LINK_FLAGS="-Wl,-q"
2. 使用oe软件包的场景:后续会提供对应应用的relocation包,直接安装即可。
如何判断目标二进制是否带有重定位信息:-Wl,-q生效后,二进制会增加RELA段,可以通过readelf -SW /path/to/bin来判断,如MySQL加选项之前,仅有.rela.dyn和.rela.plt段,增加后会出现.rela.text、.rela.eh_frame等10+ RELA段;如果-Wl,-q未生效,则在手动perf采样并执行perf2bolt时,或者执行llvm-bolt优化时(无论是否通过sysboost机制)会有告警:BOLT-WARNING: non-relocation mode for AArch64 is not fully supported。
根据被优化应用的信息,修改/etc/dfot/dfot/ini,内容项参考如下描述,一般仅需修改app部分:
公共配置: [general]
配置项 |
值范围 |
是否可用 |
说明 |
---|---|---|---|
LOG_LEVEL |
<FATAL, ERROR, WARN, INFO, DEBUG> |
可用 |
优化服务日志级别,注意级别越低打印的日志越多 |
COLLECTOR_SAMPLING_STRATEGY |
<0> |
不可用 |
采样策略 0表示插件enable后即持续低频采样 1表示enable时启动监控线程,只有负载达到阈值场景才采样 当前由oeaware控制采样流程,仅支持0 |
COLLECTOR_HIGH_LOAD_THRESHOLD |
[0, cpus*100] |
不可用 |
仅在采样策略1场景下生效,使用HIGH_LOAD_THRESHOLD作为触发采样的应用CPU使用率阈值,当前不支持 |
COLLECTOR_DATA_AGING_TIME |
按实际需要确定 |
可用 |
采样数据老化时间,当前数据与最老数据时间差值达到阈值时,丢弃累积采样数据,单位ms |
TUNER_TOOL |
["sysboost"] |
不可用 |
二进制优化器,当前仅支持sysboost |
TUNER_CHECK_PERIOD |
[10, max] |
可用 |
优化插件检查时间间隔,每隔一段时间收集采样插件数据并决定是否进行优化,单位ms |
TUNER_PROFILE_DIR |
按实际需要确定 |
可用 |
采样数据存放位置,profile文件被命名为[app_name]_[full_path_hash]_[threshold].profile |
TUNER_OPTIMIZING_STRATEGY |
[0, 1] |
可用 |
优化策略,0表示只优化一次,1表示只要采样信息在刷新,可以持续多次优化 |
TUNER_OPTIMIZING_CONDITION |
[0, 2] |
不可用 |
触发优化的条件,0表示应用退出后即开始优化,1表示低负载时优化,2表示应用退出且低负载时优化,当前仅支持0 |
应用配置: [app]
配置项 |
值范围 |
是否可用 |
说明 |
---|---|---|---|
FULL_PATH |
按实际需要确定 |
可用 |
应用二进制文件绝对路径 |
DEFAULT_PROFILE |
按实际需要确定 |
可用 |
应用的开箱profile文件,用于冷启动时使能二进制优化,没有则留空 |
COLLECTOR_DUMP_DATA_THRESHOLD |
[10000, max] |
可用 |
采样数据达到该阈值行数时触发数据导出到profile,数值越大需要的采集的samples越多 |
BOLT_DIR |
NA |
不可用 |
BOLT工具路径,留空则默认/usr/bin,内部会调用${BOLT_DIR}/perf2bolt和${BOLT_DIR}/llvm-bolt 当前由sysboost确定 |
BOLT_OPTIONS |
按实际需要确定 |
可用 |
BOLT优化选项,配置该项可以覆盖内置的默认选项,用于针对性的选项调优 |
UPDATE_DEBUG_INFO |
[0, 1] |
可用 |
优化时是否同步更新调试信息,1表示更新,0表示不更新,注意更新调试信息会有额外耗时 |
参考oeAware-manager使用手册操作优化插件:
# oeaware优化服务启动 systemctl start oeaware # oeaware启动pmu采集插件和dfot优化插件 oeawarectl -e pmu_sampling_collector oeawarectl -e dfot_tuner_sysboost # dfot日志 tail -f /etc/dfot/dfot.log # oeaware停止插件运行 oeawarectl -d pmu_sampling_collector oeawarectl -d dfot_tuner_sysboost