静态加速
准备工作
- 执行如下命令检查待优化的二进制文件中是否可以重新定位。可以重新定位表示可以进行应用优化。
- 采集应用运行时的日志数据。
部署并预热应用后,即可使用llvm-bolt -instrument -o -instrumentation-file命令配置应用的日志采集方式。
例如,配置test.so文件运行后每隔30秒收集一次日志,日志保存到运行时test.log文件中请使用如下命令。
llvm-bolt tests.so -instrument -o testd.so -instrumentation-file=test.log -instrumentation-sleep-time=30 -instrumentation-no-counters-clear
- instrument -o:配置完日志采集方式后生成的新的动态库文件。本例中新生成的动态库为testd.so。
- instrumentation-file:日志保存的文件名称。本例为test.log。
- instrumentation-sleep-time:采集日志的时间间隔,单位为秒。本例中每隔30秒采集一次日志。
- instrumentation-no-counters-clear:表示每次日志采集后不要清除日志计数器信息,保持日志信息上下文连续
- 运行testd.so对应的应用程序,应用程序运行日志会自动保存在test.log文件中。
优化应用程序
- 使用原生的BOLT工具优化应用程序。
准备好test.log文件后,就可以使用它与BOLT对应用程序进行优化。举例如下。
llvm-bolt <executable> -o <executable>.bolt -data=test.log -reorder-blocks=ext-tsp -reorder-functions=hfsort -split-functions -split-all-cold -split-eh -dyno-stats
以上为优化参数示例,并非最优参数组合。
- 使用hce-wae-auto命令优化应用程序。
hce-wae-auto命令根据自定义的配置文件来优化应用程序。
命令格式为:hce-wae-auto [-h] [-c <Path>] [-s <Keyword>] [-e <Pattern>] [-l] [--free] application
- 执行hce-wae-auto命令后,产生的参数集信息路径默认与配置文件中二进制输出路径一致,路径为:/data/hce-wae-auto/hce-wae-auto.data。
- 执行hce-wae-auto命令后,系统自动产生日志文件,默认路径为:/var/log/hce-wae-auto/hce-wae-auto.log。
表1 参数说明 参数名
是否需要赋值
取值类型
可选/必选
参数含义
-h
否
/
可选
显示命令参数帮助信息。
-c
是
string
可选
定义配置文件路径,默认路径为/etc/hce-wae-auto.conf。
-s
是
string
可选
定义筛选的关键词,用于模糊搜索上次参数集内容。
如果没有保存的参数集,则不生效。
-e
是
string
可选
根据上次参数集内容,执行选定的参数组合。需指定序号。
- 单个数字指定对应序号的参数组合。
- “:”表示序号范围。例如,4:6表示序号4到序号6;:7表示序号1到序号7;5:表示序号5到最后一个;:表示全部。
- 单个数字可与序号范围“:”一起使用,用“,”分隔。例如,1,4:6表示序号1、序号4、序号5和序号6。
-l
否
/
可选
根据配置文件生成参数集并打印,不自动执行命令,不保存参数集信息。
--free
否
/
可选
不校验配置文件中参数合法性。
应用加速工具会对配置文件中的参数进行简单校验,判断参数是否属于bolt的优化参数。若指定--free指令,则取消该校验,允许输入非优化参数。
application
否
/
必选
要执行的二进制文件,可以添加相对路径或绝对路径。例如,mysqld,/usr/bin/mysqld,../bin/mysqld。
-c、-s、-e、-l参数存在冲突时,优先级为-s > -l > -e > -c。
hce-wae-auto命令使用示例如下。
示例
说明
hce-wae-auto mysqld
从默认路径读取配置,根据配置参数生成参数集,并自动执行命令。命令执行完成后自动保存参数集信息。
hce-wae-auto mysqld -c /etc/my.conf -l
从指定路径/etc/my.conf读取配置参数,生成参数集并打印生成命令。不执行命令并且不保存参数集信息。
hce-wae-auto mysqld -c /etc/my.conf
从指定路径/etc/my.conf读取配置参数,生成参数集并自动执行命令。执行完成后自动保存参数集信息。
hce-wae-auto mysqld -s align
从上次生成的参数集信息中模糊搜索关键词align,打印匹配的参数组合。
hce-wae-auto mysqld -e 4:6
从上次生成的参数集信息中,选择序号4、5、6的参数组合,生成二进制文件。
hce-wae-auto mysqld -e 1,4:6
从上次生成的参数集信息中,选择序号1、4、5、6的参数组合,生成二进制文件。
hce-wae-auto mysqld -e :
从上次生成的参数集信息中,选择所有参数组合,生成二进制文件。
hce-wae-auto mysqld -e 4:6 -l
从上次生成的参数集信息中,选择序号4、5、6的参数组合,打印生成命令,并且不执行命令。
hce-wae-auto mysqld -e : -l
从上次生成的参数集信息中,选择所有参数组合,打印生成的命令,并且不执行命令。
hce-wae-auto mysqld --free
从默认路径读取配置,不对参数进行校验,根据配置参数生成参数集,并自动执行命令。命令执行完成后自动保存参数集信息。
hce-wae-auto -h
显示指令帮助信息。