【华为云技术分享】鲲鹏开发套件:让应用软件迁移调优So Easy

鲲鹏开发套件是提供给开发者面向鲲鹏处理器进行应用软件迁移与调优的系列化工具。通过鲲鹏开发套件可实现对海量代码进行快速扫描和分析,并提供专业的代码移植指导,以及移植后全面的系统性能分析与可视化呈现,从而极大提升软件开发者移植与调优效率。

  • 当前应用迁移面临的挑战

因处理器所支持的指令集不同,开发者可能需要对代码进行跨处理器平台的移植,大量不可见的工作量的确难以下手。如果纯粹依靠人工进行代码迁移,不仅分析过程投入工作量大,周期长,需反复试错定位,准确率也低下,而且要求移植人员专业技能高;移植到新处理器平台后的程序,容易出现程序性能问题,例如:CPU占用率过高,I/O吞吐率下降等性能问题,这就需要对程序进行优化。但传统性能分析优化手段单一,依赖专家经验,时间成本长,效果不佳,这些都超出了一般程序员的能力范围。

  • 鲲鹏开发套件的诞生

为了应对这些挑战,鲲鹏开发套件就应运而生了。鲲鹏开发套件是系列化的协助开发人员面向鲲鹏处理器快速进行应用软件迁移与调优的工具集,当前包括Dependency Advisor(分析扫描工具)、Porting Advisor(代码迁移工具)、Tuning Kit(性能优化工具)。它集成了华为代码迁移与性能调优的专家经验,能够对海量代码进行自动化扫描和分析,识别出需要移植的依赖库文件,给出专业的移植报告与建议,并提供从系统、进程、函数到代码的全景性能分析,为开发提供了从软件评估、代码移植到性能调优端到端的一站式服务套件。

  • Dependency Advisor(华为鲲鹏分析扫描工具)详细介绍

华为鲲鹏分析扫描工具可安装在x86服务器或者TaiShan服务器上,当客户有软件需要移植到鲲鹏计算平台(例如TaiShan服务器等使用鲲鹏处理器的服务器产品)时,可先用该工具分析可移植性和移植投入。该工具解决了客户软件移植评估分析过程中人工分析投入大、准确率低、整体效率低下的痛点,通过该工具能够自动分析并输出指导报告。

当前工具支持的功能如下:

  • 检查用户软件资源包(RPM、DEB、TAR、ZIP、GZIP文件)中包含的SO(Shared Object)依赖库和可执行文件,并评估SO依赖库和可执行文件的可移植性和在安装包中的相对路径。
  • 检查用户Java类软件包(JAR、WAR)中包含的SO依赖库和二进制文件,并评估上述文件的可移植性。
  • 检查指定的用户软件安装路径下的SO依赖库和可执行文件,并评估SO依赖库和可执行文件的可移植性。
  • 检查用户C/C++软件构建工程文件,并评估该文件的可移植性。
  • 检查用户C/C++软件源码,并评估软件源文件的可移植性。
  • 向用户提供软件移植报告,提供移植工作量评估。
  • 支持命令行方式和Web两种工作模式。

  • Porting Advisor(华为鲲鹏代码迁移工具)详细介绍

华为鲲鹏代码迁移工具是一款可以简化客户应用迁移到TaiShan服务器的过程的工具。当客户有x86平台上源代码的软件要移植到鲲鹏计算平台上时,可用该工具自动分析出需修改的代码内容,并指导用户如何修改。该工具解决了用户代码兼容性人工排查困难、移植经验欠缺、根据编译错误定位为题反复修改等痛点。

当前工具支持三个应用中心,支持的功能特性分别如下:

  • 源码移植扫描中心

− 检查用户C/C++软件构建工程文件,并指导用户如何移植该文件。

− 检查用户C/C++软件构建工程文件使用的链接库,并提供可移植性信息。

− 检查用户C/C++软件源码,并指导用户如何移植源文件。

  • 软件移植中心,基于华为丰富的软件移植经验,帮助用户快速移植软件。
  • 软件分析构建中心,分析用户x86软件包构成,重构适用于鲲鹏平台软件包。

  • Tuning Kit(华为鲲鹏性能优化工具)详细介绍

华为鲲鹏性能优化工具是针对鲲鹏计算平台的性能分析和优化工具,能收集处理器硬件、操作系统、进程/线程、函数等各层次的性能数据,分析出系统性能指标,定位到系统瓶颈点及热点函数。

当前工具支持的功能特性如下:

  • 系统配置全景分析,采集整个系统的软硬件配置信息,分析并针对不合理项提供优化建议。
  • 系统性能全景分析,借鉴业界的USE(utilization、saturation、errors)方法,通过采集系统CPU、内存、存储IO、网络IO等资源的运行情况,获得它们的使用率、饱和度、错误等指标,识别系统瓶颈。针对部分系统指标项,根据已有的基准值和优化经验提供优化建议。
  • 系统资源调度分析,基于CPU调度事件分析CPU核、进程/线程在各时间点的运行状态,进程/线程切换情况,给出相应的优化建议。
  • 进程/线程性能分析,借鉴业界的USE方法,采集进程/线程对CPU、内存、存储IO等资源的消耗情况,获得对应的使用率、饱和度、错误等指标,识别性能瓶颈。针对部分指标项,根据已有的基准值和优化经验提供优化建议。
  • C/C++程序分析,支持分析C/C++程序代码,找出性能瓶颈点,给出对应的热点函数及其源码和汇编指令;支持通过火焰图展示函数的调用关系,给出优化路径。
  • Java Mixed-Mode分析,支持分析JAVA程序代码,找出性能瓶颈点,给出对应的热点函数;支持通过火焰图展示函数的调用关系,给出优化路径。

  • 应用效果

在Hadoop大数据应用场景的业务迁移中,开发人员使用Dependency Advisor分析扫描和Porting Advisor构建中心一键打包功能特性,将原来x86平台上的25个RPM包快速迁移到鲲鹏服务器上,在分析环节、修改编译选项、修复编译问题、RPM打包等环节效率都有显著提升,工作量由原来的7人天下降到2人天,效率提升了70% 。

更多关于华为鲲鹏开发套件信息,请访问:

Dependency Advisor软件:https://www.huaweicloud.com/kunpeng/software/dependencyadvisor.html

Porting Advisor软件:https://www.huaweicloud.com/kunpeng/software/portingadvisor.html

Tuning Kit软件:https://www.huaweicloud.com/kunpeng/software/tuningkit.html

posted @ 2020-03-19 14:03  华为云官方博客  阅读(1565)  评论(0编辑  收藏  举报