云服务器内容精选

  • 准备工作 在做动态加速之前,请先做如下两个检查。两个条件都满足,才能对应用进行动态加速。 执行如下命令检查待优化的二进制文件中是否可以重新定位。可以重新定位表示可以进行应用优化。 readelf -a application | grep .rela.text 如果二进制文件中.rela.text段存在,表示可以重新定位。 如果不存在,为了允许BOLT在程序中重新排列函数(除了重新排列函数中的代码),需要将--emit-relocs或-q添加到应用程序的最后链接步骤中。 执行hce-wae --check命令查看应用是否支持动态加速。 如果检查结果为3,表示可以使用动态加速工具。否则不支持动态加速。
  • 操作步骤 本例以优化/data/apps/mysql-8.0.28/bin目录下的mysqld应用 ,为您介绍动态加速方式优化应用的操作。 生成插桩版应用并运行。 执行命令/data/hce-wae/dbo/gen_instrumentation /data/apps/mysql-8.0.28/bin/mysqld生成插桩版应用。 命令格式:/data/hce-wae/dbo/gen_instrumentation 应用路径 命令运行完成后,会在当前目录生成对应的以.inst为后缀的插桩文件mysqld.inst。 运行插桩文件获取进程PID,本例为87042。 创建mysqld的应用加速动态配置文件。 每一个待优化的应用都要有一个对应的配置文件,应用加速工具根据此配置文件对应用进行动态加速。 执行如下命令复制一份默认的配置文件为/data/hce-wae/config/mysqld.conf。 [root@localhost]# cp /data/hce-wae/config/hce-wae-tmp.conf /data/hce-wae/config/mysqld.conf 设置/data/hce-wae/config/mysqld.conf配置文件中的origin-exe字段。 origin-exe为待优化应用的位置,本例为/data/apps/mysql-8.0.28/bin/mysqld [root@localhost]# vim /data/hce-wae/config/mysqld.conf 使用配置文件和对应的进程PID配置动态加速工具。 命令格式:hce-wae --conf [PID] [/path/to/config] 启动动态加速,对插桩版mysql进行优化。 命令格式:hce-wae --start [PID] 启动后,可以通过--status参数查看当前优化状态。当状态为Running时,表示进程正在优化中;Finished时,表示进程已经优化完成。 命令格式:hce-wae --status [PID] 优化后,通过--snapshot参数生成优化后的.dbo二进制快照文件,本例为mysqld.dbo。 快照生成的默认路径为/data/hce-wae/snapshot/,可在配置文件中对快照位置进行修改。后续您可以直接使用此优化后的快照文件mysqld.dbo运行应用,无需重复优化。 终止动态加速工具,应用优化结束。 命令格式:hce-wae --stop [PID]
  • 静态加速配置文件示例 [binary] binary_out_path = "/data/llvm_auto" binary_num_threshold = 1000 binary_file_suffix = "blot.auto" [parameter] parameters = --align-blocks # 允许添加参数前缀-- frame-opt # 用户定义的参数集合中若不需要指定参数的值,则无需以=结束 align-functions=1 # 用户定义参数集合中指定了参数对应的值,则生成的参数集中,所有参数组合中该参数的值都为1 [include] align-blocks= # 参数无法指定值仍需以=结束 [exclude] frame-opt=none # 指定参数及对应的值,生成的参数集中会过滤参数为frame-opt,且值为none的参数组合 indirect-call-promotion= # 指定参数,该参数为枚举类型,则生成的参数集中会过滤所有参数为frame-opt的参数组合
  • 动态加速配置文件 应用加速工具默认动态加速配置信息如下,您可以自定义配置文件来优化应用。 表3 配置信息说明 模块名 描述 [mission]优化运行中的应用所要配置的参数。 log-type 运行时日志采集方式,当前仅支持instrument方式。 hotpatch-type 热补丁模式,当前仅支持mode1即ptrace方式。 snapshot-path 优化后的二进制快照文件存放的目录路径。 origin-exe 原始应用的位置,使用instrument日志采集模式时,须指定此参数。 [stop-strategy]应用优化停止策略,请选择其中一种配置。 run-times 指定优化次数,达到该次数时动态加速工具会停止优化,当前仅支持1次。 period 指定优化周期,达到该时间周期时停止优化,单位为秒,取值范围为1~600。 condition 指定优化条件,达到该条件时停止优化,当前不支持。
  • 准备工作 执行如下命令检查待优化的二进制文件中是否可以重新定位。可以重新定位表示可以进行应用优化。 readelf -a application | grep .rela.text 如果二进制文件中.rela.text段存在,表示可以重新定位。 如果不存在,为了允许BOLT在程序中重新排列函数(除了重新排列函数中的代码),需要将--emit-relocs或-q添加到应用程序的最后链接步骤中。 采集应用运行时的日志数据。 部署并预热应用后,即可使用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文件中。 应用加速工具会根据test.log文件中的动态数据来优化应用。