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

鲲鹏DevKit简介

鲲鹏DevKit(浏览器工作模式)是一款提供涵盖应用迁移、测试、性能调优及系统诊断等各环节的开发使能工具集,方便开发者快速开发出鲲鹏亲和的高性能软件。同时,帮助开发者加速应用迁移和算力升级,面向全研发作业流程,提升应用迁移、调优效率,助力开发者高效创新。迁移、调优全程无缝衔接。

  • 鲲鹏DevKit提供了C/C++/Java/Python等多种编程语言的开发环境,方便开发者根据自身需求选择合适的编程语言进行开发,同时支持Web端、IDE端和命令行。
  • 鲲鹏DevKit内置了迁移工具、性能测试工具等,方便开发者快速构建基于鲲鹏平台的高性能应用程序,并充分发挥鲲鹏平台的性能优势。
  • 鲲鹏DevKit提供了详细的文档和示例代码,帮助开发者快速入手、掌握鲲鹏平台的开发技术。
  • 鲲鹏DevKit提供了在线技术支持和社区交流平台,方便开发者在使用过程中遇到问题时及时得到解答,并与其他开发者进行交流和分享。

鲲鹏DevKit支持的工具如下表。

表1 鲲鹏DevKit支持工具

工具

说明

系统迁移工具

支持系统全栈迁移,覆盖操作系统、数据库、中间件、应用,提供迁移方案和自动化迁移能力,降低系统迁移难度,提升迁移效率。

说明:

系统迁移仅支持鲲鹏平台,全量安装包场景下,系统迁移集成在应用迁移工具。

应用迁移工具

提供x86 Linux软件迁移到鲲鹏Linux上的扫描、分析与迁移能力,支持软件迁移评估源码迁移软件包重构功能特性。

亲和分析工具

提供鲲鹏920平台软件代码质量检查能力,提升代码质量、优化访存性能,支持64位运行模式检查字节对齐检查缓存行对齐检查、内存一致性静态检查等功能特性。

系统性能分析工具

提供系统多场景性能采集和分析能力,并基于调优系统给出优化建议。支持调优助手、对比分析、HPC集群检查、HPC应用分析、全景分析等功能特性。

Java性能分析工具

针对运行在鲲鹏服务器的Java程序进行性能的分析和优化,支持在线分析、采样分析功能特性。

系统诊断工具

快速定位和诊断各部件异常,并识别源码中内存使用的问题点,支持内存使用诊断、内存越界诊断、网络IO诊断、存储IO诊断功能特性。

相关概念

表2 概念说明

概念词

说明

SO依赖库

Linux中的SO(Shared Object)文件,其名称类似“libname.so.1.1.1”。

依赖字典

应用迁移工具用来记录鲲鹏平台已经支持的SO文件、软件及获取方式(二进制安装或者源码编译安装)的列表,可下载并更新。

软件构建工程文件

C/C++/ASM/Fortran/Go常用的软件构建工具Make和CMake对应的构建文件是Makefile和CMakeLists.txt。

IPC

IPC(instructions per cycle)是指CPU每个时钟周期执行的指令总数,它可以反映CPU执行的顺畅程度。例如:对于四发射的鲲鹏920处理器,在流水线满负荷运作的情况下,每个时钟周期能够执行四条指令,IPC为4.0,程序运行时的IPC越接近4.0越好,说明程序充分利用了处理器的特性。

CPU Cycles性能事件

它基于事件采样原理,以性能事件为基础,支持针对处理器相关性能指标与操作系统相关性能指标的性能剖析。常用于性能瓶颈的查找与热点代码的定位。

CPU周期(CPU Cycles)是默认的性能事件,也叫做clock tick。根据tick中断进行采样,即在tick中断内触发采样点,在采样点里判断程序当时的上下文。

USE

USE方法(utilization、saturation、errors)是针对所有的资源,分析它的使用率、饱和度和错误,以此识别性能瓶颈。

  • 资源:主要指服务器的物理元器件,包括:CPU、内存、存储设备、网络设备等。某些软件也提供类似指标,也可以算作一种资源。
  • 使用率:在规定的时间间隔内,资源用于服务工作的时间百分比。
  • 饱和度:资源不能服务更多额外工作的程度(内核通常有等待队列)。
  • 错误:错误事件的个数。

在线分析

在线分析是一种应用程序动态分析方法,包含对于目标JVM和Java程序的双重分析。它用于分析应用程序在运行时刻,资源消耗在内部的分布、方法调用频度与耗时。该方法常用于辅助应用的性能瓶颈定位和性能调优。

在线分析通过Instrument程序的类和方法,来计算特定代码所有的方法调用情况,可能对性能造成比较大的影响。

采样分析

通过采样的方式,收集JVM的内部活动/性能事件,以录制及回放的方式进行离线分析。采样分析不需要修改应用程序的代码,对性能影响较小,适用于大型的Java程序。因为通过定期采集数据的方式,精确度相对在线分析较低。

上层应用Workload

Workload分析主要指通过动态修改上层应用代码并埋下hook来收集特定的应用相关性能数据,通过Workload分析,可以收集并定位用户关心的特定代码的工作性能。