---
title: 应用场景
description: "鲲鹏DevKit包含应用迁移工具、亲和分析工具、应用开发工具、编译调试工具、系统性能分析工具、Java性能分析工具及系统诊断工具，具体各应用场景如下。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevkithistory/devkit_24_t50/usermanual/KunpengDevKit_0007.html
sourcePath: /source/zh/kunpengdevkithistory/devkit_24_t50/usermanual/KunpengDevKit_0007.html
indexId: f5a620379774714d731ae7194445109d6c37bec2ae7e2bab996527c15d94616b80
---
# 应用场景

鲲鹏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权限。 如果Paranoid配置不符，请将Paranoid变量更改为\-1，CentOS及openEuler系统可使用以下命令： 1 echo \-1 > /proc/sys/kernel/perf\_event\_paranoid 如果显示“任务采集失败，操作系统性能监视器未开启。”，可使用命令开启系统性能监视器。 1 echo 0 > /proc/sys/kernel/nmi\_watchdog | 1 | echo \-1 > /proc/sys/kernel/perf\_event\_paranoid | 1 | echo 0 > /proc/sys/kernel/nmi\_watchdog |
| 1 | echo \-1 > /proc/sys/kernel/perf\_event\_paranoid |  |  |  |  |
| 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（extened 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诊断 | 不可使用逻辑盘或现有文件压测。 |
