动态加速(只支持HCE2.0)
准备工作
在做动态加速之前,请先做如下两个检查。两个条件都满足,才能对应用进行动态加速。
- 执行如下命令检查待优化的二进制文件中是否可以重新定位。可以重新定位表示可以进行应用优化。
 - 执行hce-wae --check /data/apps/mysql-8.0.28/bin/mysqld命令查看应用是否支持动态加速。
    
如果检查结果为3,表示可以使用动态加速工具。否则不支持动态加速。
图2 检查结果为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 应用路径
图3 /data/hce-wae/dbo/gen_instrumentation命令执行示例
      命令运行完成后,会在当前目录生成对应的以.inst为后缀的插桩文件mysqld.inst。
图4 查询以.inst为后缀的插桩文件示例
       - 运行插桩文件获取进程PID,本例为87042。
      图5 运行插桩文件获取进程PID示例
       
 - 执行命令/data/hce-wae/dbo/gen_instrumentation /data/apps/mysql-8.0.28/bin/mysqld生成插桩版应用。
      
 - 创建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
图6 origin-exe字段示例
       
 - 执行如下命令复制一份默认的配置文件为/data/hce-wae/config/mysqld.conf。
      
 - 使用配置文件和对应的进程PID配置动态加速工具。
    
命令格式:hce-wae --conf [PID] [/path/to/config]
图7 配置动态加速工具示例
     - 启动动态加速,对插桩版mysql进行优化。
    
    图8 启动动态加速示例
    启动后,可以通过--status参数查看当前优化状态。当状态为Running时,表示进程正在优化中;Finished时,表示进程已经优化完成。
命令格式:hce-wae --status [PID]
图9 查看当前优化状态示例
     - 优化后,通过--snapshot参数生成优化后的.dbo二进制快照文件,本例为mysqld.dbo。
    图10 生成优化后的.dbo二进制快照文件示例
    快照生成的默认路径为/data/hce-wae/snapshot/,可在配置文件中对快照位置进行修改。后续您可以直接使用此优化后的快照文件mysqld.dbo运行应用,无需重复优化。
 - 终止动态加速工具,应用优化结束。
    
    图11 终止动态加速工具示例
     
动态应用加速工具字符交互界面
动态应用加速工具支持字符交互界面,交互界面支持指令如图12、图13和表1所示。
| 
        字符交互界面指令  | 
      
        使用方式  | 
      
        指令描述  | 
     
|---|---|---|
| 
        list  | 
      
        list  | 
      
        获取当前环境的进程信息,包含PID、PPID以及command信息。  | 
     
| 
        status  | 
      
        status <PID>  | 
      
        查询当前正在进行的动态加速任务及状态。输入后在字符界面展示信息包括: 
  | 
     
| 
        check  | 
      
        check <PID>  | 
      
        检测当前进程是否支持静态/动态加速,展示文字结果。  | 
     
| 
        show  | 
      
        show <PID>  | 
      
        查询进程的依赖关系  | 
     
| 
        conf  | 
      
        conf <PID>  | 
      
        为目标进程配置动态加速能力,输入指令后依次弹出配置选项,根据提示进行配置即可。  | 
     
| 
        start  | 
      
        start <PID>  | 
      
        启动动态加速  | 
     
| 
        stop  | 
      
        stop <PID>  | 
      
        终止动态加速  | 
     
| 
        snapshot  | 
      
        snapshot <PID>  | 
      
        生成动态加速快照  | 
     
| 
        quit  | 
      
        quit  | 
      
        退出字符交互界面  | 
     
| 
        h/help  | 
      
        h/help  | 
      
        显示帮助信息  | 
     
    
      

