道阻且長,行則将至。埋頭苦幹,不鳴則已,一鳴驚人!加油,騷年!
文章目錄
-
- 1 參考資料
- 2 筆記總結
-
- 2.1 華為鲲鵬
- 2.2 TaiShan 伺服器
- 2.3 華為雲鲲鵬雲服務
- 2.4 openEuler
- 2.5 鲲鵬處理器與 X86 處理器的指令差異
- 2.6 編譯型語言 & 解釋型語言
- 2.7 移植選項
- 2.8 華為鲲鵬代碼遷移工具
- 2.9 容器與虛拟機
- 2.10 Docker
- 2.11 TPCC
- 2.12 BenchmarkSQL
- 2.13 HiBench
- 2.14 HPC 性能測試
- 2.15 性能調優分析工具
- 2.16 NUMA
- 2.17 鏡像
- 2.18 系統盤
- 2.19 彈性公網 IP
- 2.20 BGP 類型
- 2.21 編譯
- 2.22 Linux 安裝軟體
- 2.23 RPMbuild
- 2.24 華為雲釋出的鲲鵬行業解決方案
- 2.25 思考題
- 3 題庫分享
-
- 3.1 資源擷取
- 3.2 模拟考試
- 4 結尾祝福
溫馨提示:浏覽器閱讀文章時,可以使用
Ctrl + F
快捷鍵搜尋關鍵字。
2 筆記總結
本節主要記錄學習過程中 老師複習總結的考點 ,希望能對您有幫助!需要說明的是,教育訓練的講課内容是 V1.0 版本,但是在 2021 年之後,考試的版本為 V1.5 版本。從我自己考試的情況來看,V1.0 版本的内容在 V1.5 版本中,大概占比為 60% ~ 70% 。
2.1 華為鲲鵬
1、華為鲲鵬處理器發展圖

2、鲲鵬計算産業目标
3、全自研伺服器 TaiShan
4、鲲鵬生态相容的作業系統介紹如下圖, SUSE 支援鲲鵬版本為 15.1 ;
5、鲲鵬計算産業生态全景
6、華為鲲鵬夥伴計劃
7、華為鲲鵬處理器架構(ARM)特點
(1)優點
-
- 采用ARM架構,同樣功能性能占用的晶片面積小、功耗低、內建度更高,更多的硬體 CPU 核具備更好的并發性能。
- 支援 16 位、32 位、64 位多種指令集,能很好的相容從 IOT 、終端到雲端的各類應用場景。
- 大量使用寄存器,大多數資料操作都在寄存器中完成,指令執行速度更快。
- 采用 RISC 指令集,指令長度固定,尋址方式靈活簡單,執行效率高。
(2)不足
- 在資料中心領域屬于新進入者,其生态仍處于快速發展階段。
8、華為鲲鵬通用計算處理器,三代晶片,三個第一如下:
-
- 2014 年,鲲鵬 912 (Hi1612),第一顆基于 ARM 的 64 位 CPU ;
- 2016 年,鲲鵬 916 ,業界第一顆支援多路 ARM CPU ;
- 2019 年,鲲鵬 920 ,業界第一顆 7nm 資料中心 ARM CPU ;
9、華為鲲鵬 920 處理器規格
10、華為鲲鵬處理器技術創新
11、鲲鵬 920 内置多種加速引擎
-
- 内置 SSL 加速引擎
- 内置加密算法加速引擎
- 内置壓縮引擎
2.2 TaiShan 伺服器
1、TaiShan 100 伺服器與 TaiShan 200 伺服器對比圖
2、TaiShan 200 伺服器全景圖
3、TaiShan 200 機架伺服器特點
2.3 華為雲鲲鵬雲服務
1、華為鲲鵬彈性雲伺服器優勢,最大規格 60U480G ;
2.4 openEuler
1、openEuler 發展時間點:
-
- 2019.09.19 合作夥伴内測
- 2019.12.31 全面開放開源
2、ISula 容器解決方案,特點如下:
-
- 快速靈活&輕量級
- 可信&安全啟動
- 更新不中斷業務
- 增強安全性和調測特性
3、A-Tune 資源調優自動化
A-Tune 是一種 通過非侵入式系統畫像的負載感覺方法 ,識别業務并比對最佳資源模型,實時響應業務特征變化的 Al 自動調優系統。
4、openEuler 開源社群,備注:題目中連結的網址一般都沒問題,除非域名直接有問題。
2.5 鲲鵬處理器與 X86 處理器的指令差異
1、加法代碼,參考指令差異如下圖
2.6 編譯型語言 & 解釋型語言
1、編譯型語言:典型如 C/C++/Go 語言,都屬于編譯型語言。編譯型語言開發的程式在從 x86 處理器遷移到鲲鵬處理器時,必須經過重新編譯才能運作。
2、從源碼到程式的過程:源碼需要由編譯器、彙編器翻譯成機器指令,再通過連結器連結庫函數生成機器語言程式。機器語言必須與 CPU 的指令集比對,在運作時通過加載器加載到記憶體,由 CPU 執行指令。簡要圖示如下:
3、解釋型語言:典型的如 Java/Python 語言,都屬于解釋型語言,解釋型語言開發的程式在遷移到鲲鵬處理器時,一般不需要重新編譯。
4、解釋型語言的源代碼由編譯器生成位元組碼,然後再由虛拟機解釋執行。虛拟機将不同 CPU 指令集的差異屏蔽,是以解釋型語言的可移植性很好。但是如果程式中調用了編譯型語言所開發的 so 庫,那麼這些 so 庫需要重新移植編譯。簡要圖示如下:
5、編譯型語言,總結如下:
-
- C
- C++
- Go
- Swift
- Pascal
6、解釋型語言,總結如下:
-
- Java
- Python
- lua
- Ruby
- PHP
- Scala
- Perl
- TypeScript
- JavaScript
7、編譯型語言、解釋型語言,參考圖示如下:
2.7 移植選項
1、C/C++ 代碼 builtin 函數、資料類型移植
2、C/C++ 代碼編譯選項、編譯宏移植
2.8 華為鲲鵬代碼遷移工具
1、業務流程如下圖所示
2、CLI 方式進行代碼分析,指令功能,指令格式及參數說明等
2.9 容器與虛拟機
1、容器和虛拟機之間的主要差別在于虛拟化層的位置和作業系統資源的使用方式。
2、容器與虛拟機參數對比
2.10 Docker
1、Docker 架構如下圖
2、Dockerfile 是一個文本格式的配置檔案,包含建立鏡像所需要的全部指令。基于在 Dockerfile 中的指令,使用者可以快速建立自定義的鏡像。
-
- Docker image 的表述
- 簡單文法用來建構鏡像
- 自動化的腳本建立鏡像
3、Docker 容器遷移有兩種政策:使用 Docker pull 擷取鏡像或使用 Dockerfile 建構鏡像。
(1)Docker pull 擷取鏡像
-
- Docker pull 指令直接擷取基于 ARM 平台的 docker 鏡像
- 使用 Docker pull 指令的對象必須是适用于 ARM 的鏡像,如 arm64v8/centos:7
(2)Dockerfile 建構鏡像
-
- 使用 dockerfile 建構基于 ARM 平台的 docker 鏡像
- 基礎鏡像和建構後的鏡像均隻能使用于 ARM 平台
4、Docker 鏡像常用指令記錄
- 擷取鏡像
docker pull
- 檢視鏡像
docker images
- 啟動容器
docker run
- 退出
# 按下 Ctrl + D
# 輸入指令
exit
- 檢視容器,運作中和未運作的容器
docker ps -a
- 通過 Dockerfile 建立鏡像
docker build
2.11 TPCC
1、TPCC 性能衡量名額
-
- 流量名額
- 成本效益
2.12 BenchmarkSQL
1、編譯安裝需求:需要 JDK7 或以上版本
2、支援的資料庫有
-
- Oracle
- PostgreSQL
- EnterpriseDB
- DB2
- SQL Server
- GaussDB,華為自研資料庫( OpenGauss )
3、不同資料庫建立的配置檔案
-
- Oracle:props.ora
- PostgreSQL:props.pg
- FirebirdSQL:props.fb
- GaussDB:props.gb
4、資料庫連接配接
-
- db:資料庫,例如 Oracle 、PostgreSQL
- driver:資料庫驅動;
- conn:資料庫連接配接字元串
- user/password:資料庫使用者名及密碼
5、場景配置參數
-
- warehouse:指定倉庫數量。
- loadWorkers:指定裝載資料的并發數。
- Terminals:指定并發使用者數。
- runMins:指定測試時間。
- runTxnsPerTerminal:指定每個 Terminal 運作的事務數量,runMins 必須等于0。
- limitTxnsPerMin:指定每分鐘總事務數。
- terminalWarehouseFixed:指定每個終端是否綁定固定 warehouse 。
6、衡量名額
-
- tpmC( NewOrders )
- tpmTOTAL( TPS )
7、性能優化思路,看個眼熟
2.13 HiBench
1、大資料基準測試套件「HiBench」。基本簡介、支援的架構、開源版本元件等如下圖
2、HiBench 測試分類如下,共有 6 種測試類别
-
- micro
- ml(機器學習)
- sql
- graph
- websearch
- streaming
3、HiBench 檔案配置如下,修改 ${HiBench}/conf/hadoop.conf
- 設定 hadoop 安裝目錄(注:因個人環境而異)
hibench.hadoop.home ${hadoop_home}
- 設定 hadoop 執行目錄
hibench.hadoop.executable ${hibench.hadoop.home}/bin/hadoop
- 設定 hadoop 配置目錄
hibench.hadoop.configure.dir ${hibench.hadoop.home}/etc/hadoop
- 設定 HDFS root 路徑,用于存儲 HiBench 資料
hibench.hdfs.master hdfs://hacluster
4、測試報告,衡量标準:Throughput(吞吐量),越高越好;數值越高,性能越優!
2.14 HPC 性能測試
1、什麼是 HPC ?
HPC ( High Performance Computing )高性能計算,是通過 高速網絡 将大量伺服器進行互聯形成計算機 叢集 ,與高性能 存儲 一起,求解科研、工業界最複雜的 科學計算 問題(科學研究領域三大範式:理論科學,實驗科學,計算科學)。
2、典型應用領域
-
- 環境科學
- 生命科學
- 材料學/化學
- 天文實體
- 能源
- 制造
3、HPC 典型應用 - WRF ,具體介紹資料參考下圖
2.15 性能調優分析工具
1、華為鲲鵬性能優化工具,V1.5 版本的名字:Kunpeng Tuning kit
2、性能調優概述,參考下圖
3、華為鲲鵬性能優化工具,主要針對應用程式部署在 TaiShan 伺服器的場景下,具體參考下圖
4、華為鲲鵬性能優化工具的功能特點
-
- 支援采集整個系統或指定程序的 CPU Cycles 性能事件,能夠快速定位熱點函數。
- 支援熱點函數按照 CPU核/線程/子產品進行分組,支援檢視熱點函數調用棧。
- 支援通過火焰圖檢視熱點函數及其調用棧。
- 支援代碼映射功能,即檢視函數内的熱點指令及該指令對應的進階語言檔案及行号。
- 支援顯示彙編代碼的控制流圖。
- 支援分析 Java 代碼的熱點函數及熱點指令。
5、華為鲲鵬性能優化工具目前 隻支援單機部署 ,即将華為鲲鵬性能優化工具所有元件部署在一台伺服器上,完
成對該台伺服器軟體的性能資料采集和分析。部署環境要求如下表所示:
類别 | 子類 | 要求 |
硬體 | 伺服器 | TaiShan 200 伺服器,采用華為鲲鵬 920 處理器 |
作業系統 | CentOS openEuler | 1、CentOS 7.6 ,核心版本要求 4.14.0 以上 2、openEuler 開源社群版本 |
6、華為鲲鵬性能優化工具業務流程
(1)輸入
-
- 建立性能分析任務
- 配置任務屬性參數(分析類型、應用路徑、CPU 采樣周期等)
- 運作待分析軟體和分析任務
(2)分析處理
-
- 采集處理器性能名額資料
- 采集函數( C/C++/Java )性能名額資料
- 将采集資料檔案按不同名額次元資料庫化儲存
- 統計分析,對比經驗名額,定位出性能瓶頸
(3)輸出;輸出結果很重要,不是隻有這三類
-
- Top 熱點函數
- 熱點代碼塊(源碼 & 彙編展示)
- 火焰圖展示函數間調用關系
2.16 NUMA
1、實體上,一個 DDR 隻挂載在一個 node 上,其它 node 要通路這個 node 上的 DDR 需要通過片内總線或片間總線進行通信。
2、記憶體通路延遲從高到低為:
跨Socket > 跨NUMA不跨Socket > NUMA内
2.17 鏡像
1、鏡像類型:公共鏡像、私有鏡像、共享鏡像、市場鏡像;
2、鏡像簡要說明如下
2.18 系統盤
1、系統盤類型:普通IO、高速高IO、超高IO、超高IO(時延優化);
2、系統盤簡要說明如下圖
2.19 彈性公網 IP
1、彈性公網 IP ( Elastic IP ,簡稱 EIP )提供獨立的公網 IP 資源,包括公網 IP 位址與公網出口帶寬服務。可以與彈性雲伺服器、裸金屬伺服器、虛拟 IP 、彈性負載均衡、NAT 網關等資源靈活地綁定及解綁。擁有多種靈活的計費方式,可以滿足各種業務場景的需要。
2、一個彈性公網 IP 隻能綁定一個雲資源使用。
2.20 BGP 類型
1、靜态 BGP :網絡結構發生變化時,無法實時自動調整網絡設定以保障使用者體驗。
2、全動态 BGP :可以根據設定的尋路協定實時自動優化網絡結構,以保持客戶使用的網絡持續穩定、高效。
2.21 編譯
1、編譯通常指利用編譯程式從源語言編寫的源程式産生目标程式的過程,或者動作。一般包括兩種類型,本地編譯和交叉編譯。
2、本地編譯
(1)本地編譯可以了解為,在目前編譯平台下,編譯出來的程式隻能放到目前平台下運作。平時我們常見的軟體開發,都是屬于本地編譯;
(2)比如,我們在 x86 平台上,編寫程式并編譯成可執行程式。這種方式下,我們使用 x86 平台上的工具,開發針對 x86 平台本身的可執行程式,這個編譯過程稱為本地編譯。
3、交叉編譯
(1)交叉編譯可以了解為,在目前編譯平台下,編譯出來的程式能運作在體系結構不同的另一種目标平台上,但是編譯平台本身卻不能運作該程式;
(2)比如,我們在 x86 平台上,編寫程式并編譯成能運作在 ARM 平台的程式,編譯得到的程式在 x86 平台上是不能運作的,必須放到 ARM 平台上才能運作。
4、為什麼會有交叉編譯?
-
- Speed:目标平台的運作速度往往比主機慢得多,許多專用的嵌入式硬體被設計為低成本和低功耗,沒有太高的性能;
- Capability:整個編譯過程是非常消耗資源的,嵌入式系統往往沒有足夠的記憶體或磁盤空間;
- Availability:即使目标平台資源很充足,可以本地編譯,但是第一個在目标平台上運作的本地編譯器總需要通過交叉編譯獲得;
- Flexibility:一個完整的 Linux 編譯環境需要很多支援包,交叉編譯使我們不需要花時間将各種支援包移植到目标闆上;
2.22 Linux 安裝軟體
1、Linux 目前安裝軟體的方式有三種:源碼安裝,yum 安裝軟體,RPM 安裝安裝。
2、源碼安裝
-
- 可以自定義安裝目錄和一些配置檔案
- 但需要事先調整編譯參數
3、Yum 安裝軟體
-
- 全自動安裝,自動安裝依賴
- 但缺乏自主性,軟體的功能和存放的位置均已設定好
4、RPM 安裝
-
- 自主制作的 RPM 包能夠實作全自動安裝,且可自定義安裝路徑等配置
- 但需提前識别依賴并手動安裝
5、RPM概述
(1)RPM( Redhat Package Manager)是用于 Redhat 、CentOS 、Fedora 等 Linux 作業系統的常見軟體包管理器。它允許分發已編譯的軟體,支援一鍵安裝軟體。
(2)由于 RPM 是經過預先編譯并打包成為 RPM 檔案格式後,再加以安裝的一種方式,并且還能夠進行資料庫的記載,是以RPM有以下的優點:
2.23 RPMbuild
RPMbuild 是用來訓示轉換的源碼編譯成二進制檔案的包,如果想釋出 rpm 格式的源碼包或者是二進制包,就要使用 RPMbuild 工具。
RPMbuild 檔案夾的目錄結構如下:
RPM 包制作流程,如下圖所示
rpmbuild 目錄如下圖所示
2.24 華為雲釋出的鲲鵬行業解決方案
1、目前華為雲已經釋出的鲲鵬行業解決方案分為兩大類:鲲鵬通用解決方案和鲲鵬行業解決方案。
2、鲲鵬通用解決方案
-
- 全棧專屬雲 HCS Online
- 企業核心應用
- 鲲鵬分布式存儲
- 高性能計算 HPC
- 大資料基礎設施
3、鲲鵬行業解決方案
-
- ZF
- 金融
- 營運商
- 智能安防
- 遊戲
- 媒體和娛樂
- 其他
4、HCS Online 解決方案核心價值
2.25 思考題
1、以下哪些關于華為鲲鵬 920 處理器的描述是正确的?( ABCD )
A. 采用了 7nm 的制造技術;
B. 支援 8 通道的 DDR4 控制器;
C. 支援 PCIe 4.0 接口,并相容 PCIe 3.0/2.0/1.0 ;
D. 支援多種加速器;
2、華為鲲鵬 920 處理器内置了哪些加速器?( ABC )
A. SSL 加速引擎
B. 加解密加速引擎
C. 壓縮解壓縮加速引擎
3、TaiShan 200機架伺服器包含哪些型号?( ABC )
A. 2280
B. 5280
C. 2480
D. X6000
4、華為鲲鵬 BMS 雲伺服器最高可提供多少核?( D )
A. 32
B. 48
C. 64
D. 128
5、華為鲲鵬代碼遷移工具适用于以下哪些類型的應用程式?( AC )
A. C/C++
B. Java
C. 彙編
D. Python
6、華為鲲鵬代碼遷移工具能夠提供( BC )方面的移植評估結果。
A. 掃描源碼中有多少個安裝包
B. 掃描源碼中有多少可以移植的依賴庫 SO 檔案
C. 掃描源碼中有多少行可以移植的 C/C++ 代碼、彙編代碼
D. 預估移植所需的工作量
7、關于執行指令 “docker ps -a” 後,顯示的标題含義描述,正确的是?( ABCD )
A. CONTAINER ID:容器的唯一表示 ID
B. IMAGE:建立容器時使用的鏡像
C. COMMAND:容器最後運作的指令
D. CREATED:建立容器的時間
8、關于 Docker 的鏡像倉庫,說法正确的是?( ABCD )
A. 實作 Docker 鏡像的全局存儲
B. 提供 API 接口
C. 提供 Docker 鏡像的下載下傳/推送/查詢
D. 可用于租戶管理
9、在向鲲鵬處理器遷移軟體時,以下哪些是可能導緻編譯錯誤或告警的原因?( ABC )
A. 編譯選項
B. 資料類型不同
C. 彙編指令
D. 弱記憶體序問題
10、弱記憶體序問題主要與如下哪些因素相關?( ACE )
A. 多線程
B. 多程序
C. 不同 CPU 之間 Cache 同步
D. 一級、二級、三級 Cache 間資料同步
E. 不同 core 之間 Cache 同步
11、HiBench支援的架構有哪些?( ABCD )
A. flinkbench
B. hadoopbench
C. stormbench
D. sparkbench
12、下列哪些選項可能會影響 WRF 性能( ABCD )
A. 網絡帶寬
B. 并行線程數
C. 記憶體重新整理頻率
D. 存儲讀寫速度
13、RPM打包使用的是什麼指令,這個指令來自以下哪個包?( B )
A. rpm , rpmbuild包
B. rpmbuild ,rpm-build包
C. rpmbuild , rpmbuild包
D. rpm , rpm-build包
14、下載下傳的源碼包放在哪個目錄下? ( C )
A.BUILD
B.RPMS
C.SOURCES
D.SPEC
15、Porting Advisor工具在移植源碼過程中的作用是?( B )
A. 分析源碼,并給出移植工作量
B. 分析源碼,并給出分析報告和源碼修改建議
C. 分析源碼,并修改源碼
D. 分析源碼,并給出性能優化建議
16、以下哪些屬于鲲鵬通用解決方案?( ABCD )
A. HCSO 解決方案;
B. 大資料解決方案;
C. HPC 解決方案;
D. 分布式存儲;
3 題庫分享
本次主要分享 V1.0 版本的題庫,後續如果找到新版本 V1.5 的題庫,也會分享出來!
3.1 資源擷取
目前擷取「華為鲲鵬 HCIA 認證考試 V1.0 」題庫的方式有如下兩種
3.2 模拟考試
【參考資料】中有分享大佬的題庫,其中也有大佬自己做的模拟考試,我就總結了我記錄的題庫,也制作了一些模拟考試。
4 結尾祝福
最後祝大家萬事如意,考試順利!
如果文章内容有誤,麻煩評論/私信多多指教!如果覺得文章内容還不錯,記得一鍵三連哦,謝謝您嘞!