开发者
资源
吃透鲲鹏算力!通用业务场景开发、适配、调优一站式实操指南
吃透鲲鹏算力!通用业务场景开发、适配、调优一站式实操指南
原创
发表于03/05
8750

各位鲲鹏社区的开发者们好!

最近看到很多新手朋友在鲲鹏通用开发、适配过程中遇到各种问题,踩了很多没必要的坑。我结合自己3年多鲲鹏平台开发适配经验,整理了这份通用场景下的开发避坑指南与核心经验,全是可直接落地的干货,没有空泛理论,帮新手朋友少走弯路,快速上手鲲鹏开发。

一、新手必看:鲲鹏通用开发3个核心原则

  • 能用官方工具,绝不手动折腾:鲲鹏DevKit套件的Porting Advisor、性能分析工具,能解决90%的迁移、调优问题,新手别上来就硬啃代码手动改,效率极低还容易出错;
  • 能用官方适配组件,绝不自行编译:中间件、数据库、依赖库,优先去鲲鹏镜像站、openEuler官方源找适配好的版本,自行编译大概率会遇到各种依赖和兼容性问题;
  • 先适配功能,再谈性能优化:新手别上来就追求极致性能,先保证业务功能正常跑通,再通过工具定位瓶颈,针对性调优,避免盲目调参。

二、通用开发全流程核心经验

1. 环境搭建(新手零踩坑选型)

  • 操作系统:直接选openEuler LTS版本,配套工具链最全,兼容性最好;
  • 开发工具:直接用鲲鹏DevKit插件,支持VS Code、IDEA主流IDE,开箱即用;
  • 运行环境:Java用毕昇JDK,C/C++用毕昇编译器,所有依赖优先选鲲鹏ARM架构版本。

2. 迁移适配核心技巧

  • 解释型语言(Java/Python/Go):核心是替换运行环境,绝大多数业务代码无需修改,重点排查依赖包的架构兼容性;
  • 编译型语言(C/C++):用Porting Advisor扫描代码,重点修改x86专属汇编指令、平台相关函数,替换鲲鹏适配的数学库,禁用原生GCC无优化编译。

3. 性能调优必做动作

  • 新手必做基础调优:NUMA亲和性绑定,关闭NUMA平衡,让进程和CPU、内存绑定在同一个NUMA节点,这是最基础也最有效的调优,做完就能看到明显性能提升;
  • 进阶调优原则:通过性能分析工具定位瓶颈后再优化,不盲目复制网上的调参脚本,每一项调优都要做压测验证效果。

三、高频踩坑一键避坑方案

  • 坑1:迁移后编译报错,各种未定义引用
  • 避坑方案:先排查是不是链接了x86的so库,再用Porting Advisor扫描代码修改x86专属指令,所有依赖必须用鲲鹏ARM架构版本。
  • 坑2:功能正常,性能比x86差很多
  • 避坑方案:90%是NUMA配置问题,先做进程和NUMA节点绑定,再检查编译参数,替换毕昇编译器,启用-O2优化。
  • 坑3:Java应用频繁GC,服务卡顿
  • 避坑方案:别直接复用x86的JVM参数,替换毕昇JDK,根据服务器内存重新调整堆内存比例,选用适配鲲鹏架构的垃圾收集器。
  • 坑4:脚本类应用运行提示架构不匹配
  • 避坑方案:卸载已安装的x86架构依赖包,通过系统官方源安装鲲鹏架构版本,或通过源码编译安装。
收藏举报
Level 1
0
帖子
0
粉丝
0
获赞