背景介紹
為了進一步提高鯤鵬雲的軟件移植效率與工作量評估以及性能調優能力深化;針對華為雲鯤鵬雲,鯤鵬軟件棧的開發工具中提供的三款分析遷移與性能優化工具進行了研究;並給出了驗證報告;具體工具如下:
Dependency Advisor
一、工具介紹
一款可以簡化客戶應用遷移到TaiShan服務器過程的工具。該工具安裝在X86服務器上,當客戶有軟件需要移植到TaiShan服務器上時,可先用該工具分析可移植性和移植投入。該工具解決了客戶軟件移植評估分析過程中人工分析投入大、准確率低、整體效率低下的痛點,通過該工具能夠自動分析並輸出指導報告。
工具支持的功能特性如下:
檢查用戶軟件資源包(RPM、JAR、TAR、zip、gzip文件)中包含的SO依賴庫,並評估SO依賴庫的可移植性。
檢查指定的用戶軟件安裝路徑下的SO依賴庫,並評估SO依賴庫的可移植性。
檢查用戶軟件C/C++軟件構建工程文件,並評估該文件的可移植性。
檢查用戶軟件C/C++源碼,並評估軟件源文件的可移植性。
向用戶提供軟件移植報告,提供移植工作量評估。
支持命令行方式和Web兩種工作模式。
二、安裝
按照《華為鯤鵬分析掃描工具 用戶指南.pdf》在linux-x86_64安裝web模式。
三、進行測試
案例一
以hadoop安裝包為例分析發布版本二進制軟件包遷移可行性及遷移投入
該發布包中部分包含so文件的jar包需要重新編譯遷移,hadoop相關的多個二進制文件以及so動態庫需要重新編譯。
分析結果如下:
從分析報告可知遷移需要重新編譯上述5個庫文件,但該庫的路徑不夠明確。
案例二
以mysql-clustre源碼包為例分析源碼包遷移可行性及遷移投入
該源碼包遷移過程中遇到C庫不兼容導致的C代碼修改40行以及匯編未適配導致的20行左右內嵌匯編需要重寫。
分析結果如下:
從分析報告可知無需代碼量修改可直接重新編譯進行遷移。
四、總結
1. 優點
1)安裝、使用簡單,方便,可在遷移前進行分析,工具無需安裝到遷移環境上;
2)支持RPM、JAR、TAR、zip、gzip文件等文件的分析;
3)根據分析報告給出具體的工作量。
2. 缺點
1)只能分析出so文件是否需要重新編譯,並且未給出so所在路徑以便查找所屬包;
2)對C/C++源碼分析不夠准確,存在遺漏項,導致工作量遺漏;
3)工具未評估so的可移植性。
4)源碼編譯時的工作量評估不夠准確。
3. 預測使用場景
1)業務二進制發布包遷移評估工作量時可使用該工具進行評估作為參考,但不可過度依賴該工具評估的工作量。
Porting Advisor
一、工具介紹
該工具是一款可以簡化客戶應用遷移到TaiShan服務器的過程的工具。當客戶有X86平台上源代碼的軟件要移植到TaiShan服務器上時,可用該工具自動分析出需修改的代碼內容,並指導用戶如何修改。該工具解決了用戶代碼兼容性人工排查困難、移植經驗欠缺、反復依賴編譯調錯定位等痛點。
支持的功能特性如下:
檢查用戶C/C++軟件構建工程文件,並指導用戶如何移植該文件。
檢查用戶C/C++軟件構建工程文件使用的鏈接庫,並提供可移植性信息。
檢查用戶C/C++軟件源碼,並指導用戶如何移植源文件。
檢查用戶軟件中X86匯編代碼,並指導用戶如何移植。
支持命令行方式和Web兩種工作模式。
二、安裝
按照《華為鯤鵬代碼遷移工具 用戶指南.pdf》在linux-x86_64安裝web模式。
三、進行測試
案例一
以mysql-clustre源碼包為例分析源碼包遷移可行性
該源碼包遷移過程中遇到C庫不兼容導致的C代碼修改40行以及匯編未適配導致的20行左右內嵌匯編需要增加。
分析結果如下:
從分析結果看未掃出任何需要修改的代碼,與實際不符。
四、總結
1. 優點
1)安裝、使用簡單,方便,可在遷移前進行分析,工具無需安裝到遷移環境上;
2. 缺點
1)內嵌匯編檢查不夠完善。
2)對庫調用檢查不完整(如:syscall(__NR_epoll_create, size));
3)當工具無法掃描到,實施時人工識別到時,無法從工具頁面獲取如何修改的案例。
4)用戶手冊中的白名單不知從哪里獲取更新,並且其格式是什么,資料中未給出。
5)用戶對自己識別到的常用遷移問題無法擴展。
3. 預測使用場景
1)業務代碼或開源代碼遷移前先用該工具掃描,可以識別到部分遷移過程可能會遇到的問題。
Tuning Kit
一、工具介紹
是針對TaiShan服務器的性能分析和優化工具,能收集服務器的處理器硬件、操作系統、進程/線程、函數等各層次的性能數據,分析出系統性能指標,定位到瓶頸點及熱點函數。
華為鯤鵬性能優化工具支持的功能特性如下:
支持采集整個系統或指定進程(包括運行中的進程或直接啟動的進程)的CPU Cycles性能事件,能夠快速定位到熱點函數,包括應用程序函數、模塊函數與內核函數,甚至能夠定位到熱點指令。
支持熱點函數按照CPU核/線程/模塊進行分組,支持查看熱點函數調用棧。
支持通過火焰圖查看熱點函數及其調用棧。
支持代碼映射功能,即查看函數內的熱點指令及該指令對應的高級語言文件及行號。
支持顯示匯編代碼的控制流圖。
支持分析Java代碼的熱點函數及熱點指令。
二、安裝
按照《華為鯤鵬性能優化工具 用戶指南.pdf》在鯤鵬雲linux-aarch64實例上進行安裝。
三、進行測試
案例一
以ls為例檢查工具功能可用性
分析結果如下:
從分析結果可以看到熱點函數、火焰圖等信息進行分析系統瓶頸。
四、總結
1. 存在如下問題
1)安裝資料2.3章節步驟8安裝nginx:./auto/configure文件不存在,需要修改為./configure;
2)安裝資料2.3章節步驟9安裝python3:發布包未包含python3包,需要自行下載,資料未提供下載路徑;
4)安裝資料2.3章節步驟11修改端口號:端口號不可修改為8000端口,該端口為gunicron監聽端口。
2. 優點:
1)安裝部署方便、除第三方工具外支持一鍵部署;
2)工具分析比較全面,可分析正在運行以及未運行的C、JAVA進程的熱點函數、指令以及調用棧、火焰圖;
3)可分析整體系統的熱點函數、指令以及火焰圖。
3. 缺點:
1)需要部署在待分析環境上進行分析;
2)需要安裝的第三方軟件包python3、nginx、sqlite3需要自行編譯安裝,比較麻煩。
4. 預測使用場景
1)有助於開發人員分析客戶應用以及開源軟件遷移導致的性能變化的原因;
2)有助於開發人員進行軟件及系統性能的調優;
3)由於需要部署到待測環境上,所以在生產環境上可能存在使用限制問題。
轉載自鯤鵬論壇