鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

应用场景

鲲鹏DevKit包含应用迁移工具、亲和分析工具、应用开发工具、编译调试工具、系统性能分析工具、Java性能分析工具及系统诊断工具,具体各应用场景如下。

应用迁移工具

  • 系统迁移:支持系统全栈迁移,覆盖操作系统、数据库、中间件、应用,提供迁移方案和自动化迁移能力,降低系统迁移难度,提升迁移效率。
  • 软件迁移评估:自动扫描并分析软件包(非源码包)、已安装的软件,提供可迁移性评估报告。
  • 源码迁移:当用户有软件要迁移到基于鲲鹏920的服务器上时,可先用该工具分析源码并得到迁移修改建议。
  • 软件包重构:帮助用户重构适用于鲲鹏平台的软件安装包。
  • 专项软件迁移:使用华为提供的软件迁移仓修改、编译并产生指定软件版本的安装包,该软件包适用于鲲鹏平台。
表1 特殊场景的例外约束

特殊场景

例外约束

构建文件

  • CMake解析中的Find功能依赖GCC编译结果,编译选项中有x86特有编译选项如-m64时,如果工具运行环境是鲲鹏环境,CMake无法顺利解析,无法检出相应的内容。
  • Makefile支持$(shell shell_command)形式的shell指令,但不支持直接使用shell脚本作为构建配置文件。

C/C++代码分析

工具运行环境中缺少用户自定义宏头文件、第三方头文件、某些系统头文件场景下,会影响相关宏的修改点检出,无法给出精确建议。

Intrinsic函数

Intel协处理器相关的130多个Intrinsic函数无法给出准确替换建议。

汇编指令

  • 存在以下场景时,仅能提示用户注意转换代码的使用,不能提示100%精确的修改建议:
    • 当函数存在参数的时候,提示可能存在特殊结构导致函数转换出错。
    • 将栈上的数据入栈传参时,默认该参数为整型。
  • 存在以下场景时无法支持100%准确的自动转换,仅能提示需要手动转换:
    • goto语句、call语句和ret语句
    • 使用段寄存器或未赋值的物理寄存器
    • 访问全局符号
    • 输入输出的变量位宽大于128位
    • 输入输出的全局变量大于21个
    • 指令的位宽与变量位宽不一致
    • 使用intel和AT&T混合的汇编格式
    • 汇编存在语法错误
      说明:

亲和分析工具

亲和分析:支持x86和鲲鹏平台GCC 4.8.5-GCC 10.3.0版本32位应用向64位应用迁移的功能,包括64位运行模式检查、字节对齐检查、缓存行对齐检查和鲲鹏平台上的内存一致性检查等。

表2 特殊场景的例外约束

特殊场景

例外约束

字节对齐

递归包含头文件场景下,如果用户提供不了代码运行时候依赖的一些文件,会造成分析精确度下降。

系统性能分析工具

表3 任务限制

任务分类

描述

对比分析

支持全景分析、热点函数分析和Roofline分析。

HPC集群检查

MPI集群各节点需已配置免密,对于不符合鲲鹏平台最佳实践的配置,工具会给出优化建议。

HPC应用分析

采集OpenMP数据时,将开启内核参数/proc/sys/kernel/kptr_restrict和/proc/sys/kernel/perf_event_paranoid,以便采集call graph数据和pmu事件;当采集结束后会将内核参数恢复原值。

微架构分析

以下修改需具有root权限。

  1. 如果Paranoid配置不符,请将Paranoid变量更改为-1,CentOS及openEuler系统可使用以下命令:
    1
    echo -1 > /proc/sys/kernel/perf_event_paranoid
    
  2. 如果显示“任务采集失败,操作系统性能监视器未开启。”,可使用命令开启系统性能监视器。
    1
    echo 0 > /proc/sys/kernel/nmi_watchdog
    

访存分析

支持openEuler(内核版本为4.19及以上)、CentOS 7.6(内核版本为4.14.0-115.el7a.0.1/4.14.0-115.2.2.el7a/4.14.0-115.5.1.el7a/4.14.0-115.6.1.el7a/4.14.0-115.7.1.el7a/4.14.0-115.8.2.el7a/4.14.0-115.10.1.el7a)操作系统,并且配置SPE(Statistical Profiling Extension)环境。

  • Miss事件分析

    Miss事件统计暂不支持虚拟机和容器环境。

  • NUMA精细化分析

    NUMA精细化分析暂不支持虚拟机环境。

I/O分析

系统内核需要支持ftrace采集。

进程/线程性能分析

如果环境中sysstat版本低于11.0.0,进程/线程性能分析任务结果可能出现异常数据。

资源调度分析

建议使用4.19及其以上内核版本的操作系统运行资源调度分析任务。

Roofline分析

环境配置/proc/sys/kernel/perf_event_paranoid的值小于等于0。

锁与等待分析

环境需支持eBPF(extended Berkeley Packet Filter)配置。

Java性能分析工具

表4 任务限制

任务分类

描述

在线分析

  • 需要确保运行Java进程的JDK版本为JDK 8及以上。
  • 服务器不支持热点分析时,“新建热点分析”按钮置灰禁用。
  • 当前GC日志解析支持:CMS与G1垃圾回收器;其中Java 8版本支持CMS和G1,Java 9及以后仅支持G1。
  • 同一用户最多支持10个进程同时进行在线分析。

采样分析

运行Java进程的JDK版本要求为毕昇JDK 8.302及以上版本或OpenJDK 9及以上版本。

系统诊断工具

表5 任务限制

任务分类

描述

内存使用诊断

  • 暂不支持容器环境运行。
  • 环境需支持eBPF配置。

内存越界诊断

应用需使用GCC4.9及以上版本编译。

网络IO诊断

网络数据流量统计需内核版本为4.15.0到5.4.0的操作系统,且不支持UOS 20操作系统。

存储IO诊断

不可使用逻辑盘或现有文件压测。