鲲鹏云HCIA知识总结(一)
前言:
大二下学期有幸参加了华为鲲鹏云的一个训练营,自开营已经过去了一周时间,期间学到了很多新的知识,也拓宽了自己的眼界(●ˇ∀ˇ●)。训练营的最终目的是通过华为的HCIA认证,因此总结一下这几天的知识点。
不得不说这几天学习的内容是挺多的,内容也很琐碎,看来想通过这个认证着实不容易,好了开始总结知识点 (ง •_•)ง
第一章 鲲鹏介绍
这章在考试大纲中占10%,而且全是理论知识,主要介绍了鲲鹏计算产业以及鲲鹏生态,华为鲲鹏处理器的架构,型号与规格,技术创新与应用场景,TaiShan200机架服务器和高密服务器,华为云鲲鹏云服务,鲲鹏计算平台的操作系统兼容性以及openEuler开源操作系统的发展和特性等内容。记录一下重点的内容。
-
2019年华为推出的鲲鹏920处理器是业界第一颗7nm工艺处理器。
-
鲲鹏生态兼容的操作系统介绍:
-
华为鲲鹏伙伴计划
-
思考题:
-
华为鲲鹏计算产业相关产品有哪些?( ABC )
A、华为鲲鹏处理器
B、TaiShan服务器
C、华为云鲲鹏云服务 -
围绕鲲鹏计算产业,华为提供( ABCD )支持。
A、云服务
B、工具链
C、社区服务
D、专业服务
- 华为鲲鹏处理器架构介绍:
华为鲲鹏处理器基于ARM架构。ARM是一种CPU架构,有别于Intel、AMD CPU采用的CISC复杂指令集,ARM CPU采用RISC精简指令集(reduced instruction set computer,精简指令集计算机)。
-
Kunpeng 920内置多种加速引擎,同时TaiShan 200服务器基于Kunpeng 920芯片提供的硬件加速解决方案,包含了
对称加密
、非对称加密
和数字签名
、压缩解压缩
等算法。 -
Kunpeng 920加速器简介:
-
思考题
-
Kunpeng 920加速器子系统需要安装?(√)
-
Suse操作系统是从哪个版本开始处于Kunpeng 920的OS生态圈?(D)
A. SLES 12.3
B. SLES 12.4
C. SLES 15
D. SLES 15.1 -
以下哪些关于华为鲲鹏920处理器的描述是正确的?( ABCD)
A.采用了7nm的制造工艺;
B.支持8通道的DDR4控制器;
C.支持PCIe 4.0接口,并兼容PCIe 3.0/2.0/1.0;
D.支持多种加速器; -
华为鲲鹏920处理器内置了那些加速器?(ABC)
A、SSL加速引擎
B、加解密加速引擎
C、压缩解压缩加速引擎 -
以下哪些属于华为鲲鹏920芯片的特点?(ABC)
A. 集成最多64个自研核
B. 支持8通道DDR4控制器
C. 支持CCIX接口
D. 只支持GE/10GE网络
TaiShan服务器系列介绍:
-
第一代TaiShan 100服务器是基于鲲鹏916处理器,2016年推出市场。2019年推出TaiShan 200服务器基于最新的鲲鹏920处理器,是市场的主打产品。
-
TaiShan服务器目前已经规模商用的有2280均衡型、5280存储型,X6000高密型。
思考题
-
以下哪项不是TaiShan服务器的优点?(D)
A. 国产化,自主安全可控
B. 多物理核心,并发性能高
C. 低功耗,绿色节能
D. 生态完备,上层应用支持好 -
TaiShan 200机架服务器包含哪些型号?(ABC)
A.2280
B.5280
C.2480
D.X6000(X6000属于高密服务器)
- 鲲鹏弹性云服务器优势:覆盖全场景;极致性价比;与x86实例功能一致;生态丰富。
思考题
-
鲲鹏弹性云服务器的种类不包含的是 ?(D)
A. 通用型
B. 存储密集型
C. 内存密集型
D. 网络密集型 -
华为鲲鹏BMS(华为鲲鹏裸金属服务器)云服务器最高可提供多少核?(D)
A.32
B.48
C.64
D.128 -
Android手机应用在鲲鹏云服务上运行仍需要指令翻译器?(X)
-
华为鲲鹏云服务包括以下哪些?(ABCD)
A. 华为鲲鹏裸金属服务器
B. 鲲鹏弹性云服务器
C. 鲲鹏容器
D. 鲲鹏云手机 -
云手机支持哪些场景?(ABC)
1、智能应用托管
2、云游戏
3、移动安全办公 -
华为云鲲鹏云手机优势 ?(ABCD)
A. 基于华为自硏芯片及硬件底座
B. 支持自研高性能GPU
C. 兼容32/64位ARM原生指令
D. Monbox双ZOS共内核架构 -
只有华为云提供了arm服务器?(√)
- 云容器引擎(Cloud Container Engine,CCE),云容器实例(Cloud Container Instance, CCI)
华为鲲鹏处理器OS兼容性:
目前鲲鹏处理器仅支持Linux类型操作系统,包括:
思考题:
- Linux操作系统之父是谁?
Linus Torvalds - TaiShan服务器支持哪个中标麒麟版本?(A)
A、支持NeoKylin Server v5.0 U5
B、支持NeoKylin Server v4.0 U4
C、Kylin Server v5.0 U5
D、Kylin Server v4.0 U4
-
openEuler概述:
openEuler是一款开源操作系统(2019年开源)。当前openEuler内核源于Linux,支持鲲鹏及其它多种处理器,能够充分释放计算芯片的潜能,是由全球开源贡献者构建的高效、稳定、安全的开源操作系统。 -
鲲鹏计算平台已经兼容的操作系统可通过
http://support.huawei.com/onlinetoolweb/ftca/index?serise=9
链接查询。
思考题:
- 欧拉操作系统可以装在以下哪些服务器上?(D)
A.RH5885 V5
B.RH5885 V3
C.TaiShan 100
D.TaiShan 200 - 以下那些内容不享受鲲鹏服务?(C)
A.购买Taishan服务器
B.购买鲲鹏云服务
C.购买RH服务器
I.openEuler OS是哪年开源的?(D)
A、2010 B、2016 C、2018 D、2019
II. 请判断:A-Tune是一种通过非侵入式系统画像的负载感知方法,识别业务并匹配最佳资源模型,实时响应业务特征变化的AI自动调优系统。(√)
III.哪些操作系统是国内的操作系统?
Ⅳ. 鲲鹏芯片都可以应用在哪些地方?
Taishan服务器和华为鲲鹏云服务。
第二章 应用移植
这章的知识点占比为25% ,介绍了华为鲲鹏平台应用移植的相关知识,并且有两个实验,包括软件迁移至鲲鹏计算平台的整个实施过程。并从服务器和容器两种应用载体出发,介绍了Kunpeng Porting Advisor迁移工具的使用和容器迁移操作步骤。
-
问:在使用鲲鹏处理器时,为什么要做软件迁移?
答:鲲鹏处理器与x86处理器的指令存在差异。 -
编译型语言:典型的如
C/C++
Go
,Pascal
语言,都属于编译型语言。编译型语言开发的程序在从x86处理器迁移到鲲鹏处理器时,必须经过重新编译才能运行。 -
从源码到程序的过程:源码需要由编译器、汇编器翻译成机器指令,再通过链接器链接库函数生成机器语言程序。机器语言必须与CPU的指令集匹配,在运行时通过加载器加载到内存,由CPU执行指令。
- 解释型语言:典型的如
Java/Python
语言,都属于解释型语言,解释型语言开发的程序在迁移到鲲鹏处理器时,一般不需要重新编译。 - 解释型语言的源代码由编译器生成字节码,然后再由虚拟机解释执行。虚拟机将不同CPU指令集的差异屏蔽,因此解释型语言的可移植性很好。但是如果程序中调用了编译型语言所开发的so库,那么这些so库需要重新移植编译。
- 1.对于解释性语言编写的程序,可直接部署在Kunpeng平台;
- 2.对于C/C++等编译型语言编写的程序(开源软件、自研软件),如果可以获得源代码,可重新编译后部署;如果无法获得源代码可选用其它支持Kunpeng平台的可替代软件;如果无其它替代软件,可选用混合部署方案。
C/C++代码builtin函数、数据类型移植
- 在x86和鲲鹏处理器下,C/C++语言中默认的char类型有所不同,x86下默认的char类型是有符号的char类型,而鲲鹏处理器下则是无符号的char,因此需要移植修改。当然,也可以增加编译选项屏蔽这种差异,详细的修改方法可以参考《TaiShan代码移植指导》
- Builtin函数是编译器提供的一套函数。编译器实现的builtin函数通常是通过cpu的指令实现某些频繁调用的函数,以达到很高的性能。这里的示例是crc32的校验函数,还有一个是将数据预取到cache的汇编指令,改成使用编译器自带的builtin函数。既保证了性能,又提升了可移植性。
华为鲲鹏代码迁移工具
- 处理器所支持的指令集不同,意味着开发者可能需要对代码进行跨平台的移植。为了解决用户代码移植性人工排查困难、移植经验欠缺、反复依赖编译调错定位等,投入工作量大,整体效率低的问题,华为推出Kunpeng Porting Advisor华为鲲鹏代码迁移工具。
华为鲲鹏代码迁移工具提供CLI和Web两种访问方式,只能选择一种安装。
- CLI方式:
通过命令行方式使用代码迁移工具各功能,最终移植分析结
果输出到.csv
文件,用户可以根据移植建议进行处理。 - Web方式:
通过浏览器远程使用代码迁移工具各功能,最终移植分析结
果输出到.csv
或者.html
文件中,用户可以根据移植建议进行
处理。工具只允许一个用户工作,不支持多用户在线和并发
访问。 csv
和html
报告中包含源码扫描的基本信息、需要移植的依赖库SO文件列表以及移植建议、需要移植的源文件列表以及源码所在行号、移植建议。
3、容器迁移指导
- 什么是容器?
容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。
- 容器与虚拟机的区别?
- 对于容器,它首先是一个相对独立的运行环境,在这一点有点类似于虚拟机,但是不像虚拟机那样彻底。在容器内,应该最小化其对外界的影响,比如不能在容器内把宿主机上的资源全部消耗,这就是资源控制。
- 左图虚拟机的Guest OS层和Hypervisor层在docker中被Docker Engine层所替代
- 虚拟机的Guest OS即为虚拟机安装的操作系统,它是一个完整操作系统内核
- 所有的容器共享同一个 Host OS ,这使得容器在体积上要比虚拟机小很多
Docker容器与镜像
- 镜像是一个静态的概念,类似于面向对象编程中的类,容器是动态的概念,已经镜像运行起来就成为一个容器也就是类似于面向对象中的一个对象实例。
- 在Docker镜像分为基础镜像和父镜像,没有父镜像的镜像被称为基础镜像。用户是基于基础镜像来制作各种不同的应用镜像。这些应用镜像共享同一个基础镜像层,提高了存储效率。
Docker容器迁移策略
- Docker容器迁移有两种策略:使用Docker pull获取镜像或使用Dockerfile构建镜像。
思考题:
-
鲲鹏处理器和x86处理器的add指令是一样的。(B)
A. True
B. False -
请选岀X86处理器汇编指令 ?(BC)
A. Idr x0, [sp,#8] |从内存将变量b的值放入寄存器x1
B. add %edx,%eax |将edx(a)中的值加上eax(b)的值放入eax寄存器
C. mov -0x8(%rbp),%eax |从内存将变量b的值放入寄存器的x1
D. str x0, [spf,#5] |将甸寄存器的值存入内存(变量c) -
以下哪些是非编译型(解释型)语言?(BC)
A.Pascal
B.Perl
C.Ruby
D.C/C++ -
纯Java语言开发的代码,无依赖的SO库文件不需要编译,可以直接在JVM(Java虚拟机)中运行。(B)
A. True
B. False -
为什么x86架构处理器上的软件在鲲鹏处理器使用时需要移植?( ABCD)
A、两种处理器的指令集不同
B、源代码需要按照目标处理的指令集编译成指令才能运行
C、编译型语言由编译器静态编译成指令和数据
D、解释型语言由语言的虚拟机在运行时将源码/字节码编译成指令和数据 -
Porting Advisor工具默认是访问端口是什么?(C)
A、8080 B、8083 C、8084 D、8086 -
Porting Advisor默认用户名和密码是什么?(C)
A、portadmin 默认密码为admin@9000
B、Portadmin 默认密码为Admin@9000
C、portadmin 默认密码为Admin@9000
D、Portadmin 默认密码为admin@9000 -
对于迁移工具的CLI页面以下说法正确的是(A)
A、仅支持输出csv的文件
B、支持输出html文件
C、支持输出xlsx文件
D、支持输出doc文件 -
使用如下CLI命令进行代码分析时,以下哪个参数是可选的 ?(B)
A. 源代码所在路径:-S source
B. 编译器版本:-C compiler
C. 软件构建命令:—cmd cmd
D. 软件移植的目标操作系统的信息:—tos tos -
华为鲲鹏代码迁移工具适用于以下哪些类型的应用程序?( AC )
A. C/C++
B. Java
C. 汇编
D. Python -
华为鲲鹏代码迁移工具能够提供( BC )方面的移植评估结果。
A. 扫描源码中有多少个安装包
B. 扫描源码中有多少可以移植的依赖库SO文件
C. 扫描源码中有多少行可以移植的C/C++代码、汇编代码
D. 预估移植所需的工作量 -
Porting Advisor工具在移植源码过程中的作用是?( B )
A. 分析源码,并给出移植工作量
B. 分析源码,并给出分析报告和源码修改建议
C. 分析源码,并修改源码
D. 分析源码,并给出性能优化建议 -
以下哪条命令可以查看docker镜像?(A)
A. docker images
B. docker list
C. docker container ls
D. docker -a -
构建docker镜像有哪些方式?( AB )
A、Docker pull获取镜像
B、Dockerfile构建镜像
C、Docker run
D、Docker ps -
关于Dockerfile的描述,以下哪些是正确的 ?(ABD)
A. Dockerfile一般包含四部分内容:基础镜像信息、维护者信息、镜像操作指令容器 启动时执行指令
B. Dockerfile中,第一条指令必须为FROM指令
C. EXPOSE在Dockerfile中是必选的
D. 完成Dockerfile编写后,可以通过docker build命令来创建镜像 -
关于执行命令“docker ps -a”后,显示的标题含义描述,正确的是?(ABCD)
A. CONTAINER ID:容器的唯一表示ID
B. IMAGE:创建容器时使用的镜像
C. COMMAND:容器最后运行的命令
D. CREATED:创建容器的时间 -
关于Docker的镜像仓库,说法正确的是?( ABCD)
A.实现Docker镜像的全局存储
B. 提供API接口
C.提供Docker镜像的下载/推送/查询
D.可用于租户管理 -
-mabi=lp64 是编译生成应用程序为64位的鲲鹏编译选项( A)
A. True
B. False -
在向鲲鹏处理器迁移软件时,以下哪些是可能导致编译错误或告警的原因?(ABC )
A. 编译选项
B. 数据类型不同
C. 汇编指令
D. 弱内存序问题 -
弱内存序问题主要与如下那些因素相关?(ACE )
A. 多线程
B. 多进程
C. 不同CPU之间Cache同步
D. 一级、二级、三级Cache间数据同步
E. 不同core之间Cache同步 -
以下哪个工具可以用于鲲鹏平台上进行代码迁移?©
A. Tuning kit( 华为鲲鹏性能优化工具)
B. Dependency Advisor(华为鲲鹏分析扫描工具)
C. Porting Advisor
D. GCC
第三章 应用性能测试与调优
这章的知识点占比为20% ,主要介绍了在数据库、大数据和HPC场景下进行性能测试的方法,使用华为鲲鹏性能优化工具Kunpeng Tuning Kit对C/C++
类程序和Java Mixed-Mode
类程序进行性能分析的方法,以及对NUMA
和线程并发数进行性能调优的案例。
TPCC - 测试模型
- TPC-C是针对OLTP的基准测试模型,可以衡量数据库的性能和硬件性价比,是广泛应用并关注的一种测试模型。
- TPCC测试模型是一个大型的商品批发销售公司,它拥有若干个分布在不同区域的商品仓库。
-
TCPP模型可以支持跨平台供货?(A)
A、True
B、False -
以下哪个不是TPCC 的交易类型?(A)
A、统计订单总额
B、新订单
C、支付操作
D、发货
TPCC - 交易类型
- 新订单(New-Order):客户输入一笔新的订货交易。
- 支付操作(Payment):更新客户帐户余额以反映其支付状况。
- 发货(Delivery):发货(模拟批处理交易)。
- 订单状态查询(Order-Status):查询客户最近交易的状态。
- 库存状态查询(Stock-Level):查询仓库库存状况,以便能够及时补货。
TPCC - 性能衡量指标
- 流量指标
tpmC
系统在执行支付操作、订单状态查询、发货和库存状态查询这四种交易时,每分钟可以处理多少个新订单交易。 - 性价比
Price/tpmC
测试系统的整体价格与流量指标的比值,在获得相同的流量指标即tpmC(transactions per minute,C即基准程序)值的情况下,价格越低越好。
测试工具 — BenchmarkSQL
-
Java语言编写,内嵌TPCC测试脚本的TPCC基础测试程序,是对数据库进行性能测试的工具。
-
通过JDBC连接数据库,执行TPCC模型测试。
-
支持数据库:
Oracle
PostgreSQL
EnterpriseDB
DB2
SQL Server
GaussDB
测试流程:
BenchmarkSQL —场景配置
- warehouse:指定仓库数量。
- loadWorkers:指定装载数据的并发数。
- Terminals:指定并发用户数。
- runMins:指定测试时间。
- runTxnsPerTerminal:指定每个Terminal运行的事务数量,runMins必须等于0。
- limitTxnsPerMin:指定每分钟总事务数。
- terminalWarehouseFixed:指定每个终端是否绑定固定warehouse。
1个warehouse的数据大小是75M。
loadWorkers只是加载数据时的并发用户数。
思考题:
- BenchmarkSQL场景配置,以下说法哪个是正确的?(C)
A、runMins,runTxnsPerTerminal必须不相等
B、runMins,runTxnsPerTerminal都等于0
C、指定每个Terminal运行的事务数量,runMins必须等于0
D、runMins,runTxnsPerTerminal都不等于0
BenchmarkSQL-执行测试
- 衡量标准:
tpmC(NewOrders):每分钟内系统处理的新订单个数
tpmTOTAL(TPS)每分钟内系统处理的事务总数
思考题:
-
TPCC衡量标准是什么?( C )
A. QphH
B. 响应时间
C. tpmC
D.TPS -
BenchmarkSQL配置文件中loadWorkers指的是什么( B )。
A. 并发用户数
B. 数据库装载并发数
C. 数据库并行数
D. 数据库表的数量 -
BenchmarkSQL 测试中,tpmC和tpmTOTAL这两个值越大,代表性能越差?(B)
A、True
B、False
大数据基准测试套件—HiBench
HiBench简介:
- 开源的大数据基准测试套件。
- 用于评估大数据框架的速度,吞吐量和系统资源利用率。
- 支持的框架:hadoopbench、sparkbench、stormbench、flinkbench、gearpumpbench。
- 支持的开源版本组件:Hadoop、Spark、Storm、Kafka、Flink。
- 目前使用较多的版本:HiBench-7.0。
- 共计19个测试方向,可分为6种测试类别。
趁热打铁:
- HiBench支持的框架有哪些?(ABCD )
A. flinkbench
B. hadoopbench
C. stormbench
D. sparkbench
HiBench - 测试分类
- 共6种测试类别:
- micro:微基准测试
- ml:机器学习
- sql:SQL查询
- graph:图计算
- websearch:Web搜索
- streaming:流数据计算
趁热打铁:
-
HiBench测试分类有以下几种?(ABDE)
A.micro
B.ml
C.Hadoop
D.graph
E.streaming -
CPU性能和网络带宽都会影响HPC性能?(A)
A. Ture
B. False
高性能计算简介:
- 什么是HPC?
HPC(High Performance Computing)高性能计算,是通过高速网络将大量服务器进行互联形成计算机集群,与高性能存储一起,求解科研、工业界最复杂的科学计算问题(科学研究领域三大范式:理论科学,实验科学,计算科学)。
HPC典型应用 - WRF
- WRF(Weather Research and Forecasting Model)是次世代的中尺度天气预报模式,包括多重区域、从几公里到数千公里的灵活分辨率、多重嵌套网格,以及与之协调的三维变分同化系统3DVAR等。
性能测试 - WRF测试流程
- 以气象行业应用WRF为例,进行单次安装测试的流程图:
思考题:
- 下列哪些选项可能会影响WRF性能?(ABCD)
A. 网络带宽
B. 并行线程数
C. 内存刷新频率
D. 存储读写速度
华为鲲鹏性能优化工具
- 为解决客户软件运行遇到性能问题时凭人工经验定位困难、调优能力弱的痛点,华为推出了Kunpeng Tuning Kit鲲鹏性能优化工具。
思考题:
- 使用华为鲲鹏性能优化工具对C/C++应用程序进行性能分析时,能够查看到函数源代码、汇编代码,以及函数汇编代码basic block的控制流图?(A)
A. True
B. Flase
-
华为鲲鹏性能优化工具部署,当前版本只支持单机部署,即将华为鲲鹏性能优化工具所有组件部署在一台服务器上,完成对该台服务器软件的性能数据采集和分析。
-
部署环境要求如下表所示:
趁热打铁:多选题
- 鲲鹏性能分析工具支持以下哪几种操作系统?(AB)
A.OpenEuler
B.Centos
C.RedHat
D.Neokylin
华为鲲鹏性能优化工具访问方式
- 华为鲲鹏性能优化工具部署在TaiShan服务器上,该服务器上同时运行客户的应用软件。
- 华为鲲鹏性能优化工具提供Web界面访问方式,用户只需要在浏览器地址栏中输入:https://部署服务器的IP:端口号即可。
华为鲲鹏性能优化工具支持以多用户多任务并发访问的方式使用Web界面。
https默认端口号为8086,请确认使用该工具之前OS防火墙已开通8086端口。
函数火焰图
- 火焰图就是看顶层的哪个函数占据的宽度最大。只要有“平顶”(plateaus),就表示该函数可能存在性能问题。
- 颜色没有特殊含义,因为火焰图表示的是CPU的繁忙程度,所以一般选择暖色调。
思考题:
-
华为鲲鹏性能优化工具支持从哪些维度分析应用的性能瓶颈?(AB)
A. C/C++
B. Java Mixed-Mode
C. Locks and Waits
D. LLC&DDR -
华为鲲鹏性能优化工具能够提供(ABCD)方面的性能分析结果。
A.分析Top热点函数
B.分析函数火焰图
C.分析热点函数代码映射
D.分析不同函数对应top-down模型的各指标值
NUMA
物理上,一个DDR只挂载在一个node上,其它node要访问这个node上的DDR需要通过片内总线(如图中的1)或片间总线(如图中的2)进行通信,内存访问延迟从高到低为:
跨Socket > 跨NUMA不跨Socket > NUMA内
- NUMA:Non-uniform Memory Access,非一致性内存访问。
- DDR:Double Data Rate SDRAM,双倍速率SDRAM,就是我们常说的内存条。
- Socket:插槽,实体CPU插在主板的一个插槽上,这里代表可以在主板上独立插拔的CPU。一个主板上可以包含多个Socket。
- NUMA node:NUMA节点,属于同一个node的Core共享部分资源,如内存控制器。一个Socket可以包含一个或多个NUMA node。
- Core:中央处理单元,一个独立的硬件执行单元,有独立的算术逻辑单元和寄存器等。一个NUMA node可以包含多个Core。
趁热打铁:
内存访问延时从高到低是(A)单选题
A、跨Socket>跨NUMA不跨Socket>NUMA内
B、跨NUMA不跨Socket>跨Socket>NUMA内
C、NUMA内>跨NUMA不跨Socket>跨Socket
D、跨Socket>NUMA内>跨NUMA不跨Socket
思考题:
- NUMA架构下,什么原因导致了CPU core访问不同的DDR的性能不一样?
答:物理上,一个DDR只挂载在一个node上,其它node要访问这个node上的DDR需要通过片内总线或片间总线进行通信。
🆗以上就是本周的重点内容了。