鲲鹏软件平台迁移方案_第1页
鲲鹏软件平台迁移方案_第2页
鲲鹏软件平台迁移方案_第3页
鲲鹏软件平台迁移方案_第4页
鲲鹏软件平台迁移方案_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、鲲鹏软件平台迁移方案前言本课程将从程序运行原理开始介绍,以了解软件迁移的背景与必要性。并通 过软件迁移过程介绍迁移的五个步骤以及每个步骤的具体事项。第1页目标第2页学完本章节后,您将能够:了解程序运行原理了解软件迁移至鲲鹏计算平台的过程目录为什么要做软件迁移软件迁移过程概述 典型案例第3页计算技术栈与程序执行过程计算技术栈程序执行过程Application(应用)Algorithm(算法)High-Level Language(高级编程语言)Assembly Language(汇编语言)Machine Code(二进制机器码)Instruction Set Architecture(指令集架构

2、)Micro Architecture(微架构)Gates/Registers(门/寄存器)Transistors(晶体管)Physics(物理原材料)Increasing order of ComplexityIncreasing order of AbstractionSoftwareHardware高级语言汇编语言机器码0000 1001 1100 0110 1010 1111 0101 1000 1010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 10010101 1000 0000 10

3、01 1100 0110 1010 1111C/C+编译器Fortran编译器汇编器指令集指令1数据1temp = v k; vk = vk+1; vk+1 = temp;TEMP = VK VK = VK+1 VK+1 = TEMPlw $t0, 0($2) lw $t1, 4($2) sw $t1, 0($2) sw $t0, 4($2)第4页程序代码(C/C+):int main()int a = 1;int b = 2; int c = 0;c = a + b;return c;汇编代码指令说明ldrx1, sp,#12b9400fe1从内存将变量a的值放入寄存器x1ldrx0, sp

4、,#8b9400be0从内存将变量b的值放入寄存器x0addx0, x1, x00b000020将x1(a)中的值加上x0(b)的值放入x0寄存器strx0, sp,#4b90007e0将x0寄存器的值存入内存(变量c)汇编代码指令说明mov -0 x4(%rbp),%edx8b 55 fc从内存将变量a的值放入寄存器edxmov -0 x8(%rbp),%eax8b 45 f8从内存将变量b的值放入寄存器eaxadd %edx,%eax01 d0将edx(a)中的值加上eax(b)的值放入eax寄存器mov %eax,-0 xc(%rbp)89 45 f4将eax寄存器的值存入内存(变量c)

5、在鲲鹏编译后生成指令 在x86编译后生成指令鲲鹏处理器与x86处理器的指令差异编译第5页为什么要做软件迁移软件迁移过程概述典型案例目录第6页迁移准备迁移分析编译迁移测试与认证性能调优信息收集环境申请软件栈分析编程语言/代码/依赖库分析性能指标测试性能优化压力测试长稳测试规模商用/鲲鹏 展翅认证代码迁移软件包迁移迁移过程概述五个步骤完成软件迁移第7页Openlab远程环境,一站式迁移调优平台移植 X86-鲲鹏兼容性 测试技术 认证办公环境可以连接公网环境无需配置物理服务器,向Openlab申请远程服务器资源提供认证,生态推广信息收集收集软件技术栈硬件信息芯片/服务器信息自研软件中间件/编译器操作

6、系统/虚拟机开源软件商业软件软件信息迁移准备收集软件栈信息,准备迁移环境环境申请第8页X86 芯片StreamXP /2288H客户自研软件开源软件JDK闭源软件软件依赖库GCCOS ToolsOS软件技术栈业务软件运行环境开源软件第9页自研软件商用软件JDK编译器操作系统开源软件:获取开源软件ARM64软件包或下载源码重新编译依赖组件:获取ARM64包或获取源码重新编译,闭源组件需升级替换 ARM版本或替换类似组件库编译语言:C/C+/Go类编译语言重新编译解释语言:Java/Python等解释型语言替换ARM版本JDK或PVM虚拟机获取支持鲲鹏处理器或TaiShan服务器的软件版本如无法获

7、取到兼容版本,需更换其他类似软件替换支持鲲鹏版本JDK,如OpenJDK使用操作系统自带的编译器或者下载源码重新编译,如GCC 7.3替换支持鲲鹏操作系统,可使用智能计算产品兼容性查询助手查询*说明:在华为云社区的鲲鹏论坛,已经建立了软件仓库,部分软件包可以在软件仓库直接下载迁移分析分析软件栈,制定迁移策略代码迁移软件包迁移编译型语言 C/C+/Go解释型语言 Java/Python扫描依赖:扫描软件包的运行依赖库/可执行程序依赖库编译:编译型语言需重新编译,解释型语言基于对应的虚拟机运行软件打包:按照软件安装包原有结构重新制作成鲲鹏的软件包代码修改:源码中对指令集依赖的宏定义及builtin

8、函数脚本修改:替换成支持鲲鹏的编译选项内联汇编:替换后重新编译,比如rdtsc指令等不兼容指令:如SSE Intrinsic类加速指令,需重新编写迁移类型子类修改点RPM第10页DEB编译迁移软件编译打包,验证基本功能直接翻译:纯解释型语言开发的应用程序,代码无需修改,程序也不需要重新编译, 如Java软件安装ARM版本JDK即可依赖库编译:如果软件含依赖库,则需要重新编译建立基准压力测试确定瓶颈实施优化确认效果调优前根据当前的硬件配置、组网、测试模型做综合评估,建立合理的调优目标。通过压力测试工具对系统加压,同时监控系统数据,记录数据变化。在压力测试下,测试系统瓶颈比较容易显现。系统的瓶颈通

9、常会在CPU过于繁忙、IO等待、 网络等待、响应时延等方面出现。根据瓶颈点针对性地实施优化措施,同时记录优化措施,一旦出现负向效果,及时回退。重新启动压力测试,准备好相关的工具监视系统,确认优化效果。性能调优利用五步法优化软件性能第11页层层测试,保障业务高性能稳定运行鲲鹏展翅认证现状测试与认证保障商用上线,共建鲲鹏生态功能测试性能测试 长稳测试 规模商用测试业务基本功能在鲲鹏上运行是否正常,含单元测试及系统集成测试测试业务性能表现是否符合目标,同时监测 各系统指标是否正常长时间运行测试程序,以检测业务能否长期 稳定运行上市资料刷新割接上线累计661家行业合作伙伴获得鲲鹏展翅认证,平均每月认证

10、申请43份、 发放证书55份。覆盖数字政府、电力、安平、运营商、金融等9大行业方案,以及数 据库、中间件、大数据、分布式存储、云&虚拟化等9个水平方案。*说明:上述数据为截止到2020年5月8日的统计数据第12页目录为什么要做软件迁移软件迁移过程概述典型案例第13页步骤一 迁移准备步骤二 迁移分析步骤三 编译迁移步骤四 性能调优步骤五 规模商用鲲鹏软件迁移 的五个步骤工期2周2周6周8周4周业务特征第14页代码规模:C/C+( 272万行)、Java( 165万行 )、Python( 17万行 )和JavaScript( 10.8万行 )依赖库:Java及C+的依赖库总计140个,其中C/C+

11、语言 相关的34个性能目标:与x86持平迁移修改174个依赖库需要重新编译代码归一,构建脚本归一汇编指令替换编译选项修改数据类型修改华为内部项目:大型平台软件历时4个月完成规模商用原有平台2.4GHz / 2P / 48核Debian OS业务系统C+/汇编/Java 520+源码文件鲲鹏/TaiShan2.6GHz / 2P / 96核Debian OS适配补丁(30个)业务系统55个依赖库移植39个编译问题,195行代码修改5人月完成520+源码文件移植,性能提升10%案例:行业伙伴核心应用系统迁移技术分析硬件环境 代码评估 环境部署性能优化热点函数分析 多核绑定内存就近访问 网卡队列优化

12、代码移植C+/汇编语言移植 安装JDK编译开源代码 更换依赖库互联网行业伙伴核心应用迁移环境准备:1人月第15页代码编译和修改:2人月性能优化:2人月迁移规模:整体迁移,涉及的商业软件较多,编码类型主要以Java居多,涉及的Java软件包100多个测试场景:大数据/数据库/虚拟化/物理机性能/业务系统功能整体用时:整体迁移用时1.5个月,测试及调优用时1个月测试结果:各业务系统功能验证通过,各测试场景性能均优于友商Skylake 61482280H V5业务应用软件WeblogicOracle JDKOracle DBRedhat linuxVMWareKunpeng 920TaiShan 200 2280业务应用软件TomcatOpen JDKGauss DB中标麒麟FusionSph

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论