鯤鵬性能優化十板斧——鯤鵬處理器NUMA簡介與性能調優五步法

1.1 鯤鵬處理器NUMA簡介

隨着現代社會信息化、智能化的飛速發展,愈來愈多的設備接入互聯網、物聯網、車聯網,從而催生了龐大的計算需求。可是功耗牆問題以功耗和冷卻兩大限制極大的影響了單核算力的發展。爲了知足智能世界快速增加的算力需求,多核架構成爲最重要的演進方向。性能優化

傳統的多核方案採用的是SMP(Symmetric Multi-Processing)技術,即對稱多處理器結構,如圖1-1所示。在對稱多處理器架構下,每一個處理器的地位都是平等的,對內存的使用權限也相同。任何一個程序或進程、線程均可以分配到任何一個處理器上運行,在操做系統的支持下,能夠達到很是好的負載均衡,讓整個系統的性能、吞吐量有較大提高。可是,因爲多個核使用相同的總線訪問內存,隨着核數的增加,總線將成爲瓶頸,制約系統的擴展性和性能。網絡

圖1-1 對稱多處理器SMP架構架構

111.png

 

鯤鵬處理器支持NUMA(Non-uniform memory access, 非統一內存訪問)架構,可以很好的解決SMP技術對CPU核數的制約。NUMA架構將多個核結成一個節點(Node),每個節點至關因而一個對稱多處理機(SMP),一塊CPU的節點之間經過On-chip Network通信,不一樣的CPU之間採用Hydra Interface實現高帶寬低時延的片間通信,如圖1-2所示。在NUMA架構下,整個內存空間在物理上是分佈式的,全部這些內存的集合就是整個系統的全局內存。每一個核訪問內存的時間取決於內存相對於處理器的位置,訪問本地內存(本節點內)會更快一些。Linux內核從2.5版本開始支持NUMA架構,如今的操做系統也提供了豐富的工具和接口,幫助咱們完成就近訪問內存的優化和配置。因此,使用鯤鵬處理器所實現的計算機系統,經過適當的性能調優,既可以達成很好的性能,又可以解決SMP架構下的總線瓶頸問題,提供更強的多核擴展能力,以及更好更靈活的計算能力。負載均衡

圖1-2 NUMA架構分佈式

2222.png

 

1.2 性能調優五步法

性能優化一般能夠經過如表1-1五個步驟完成。工具

表1-1 性能優化的通用步驟性能

序號測試

步驟優化

說明spa

1

創建基準

在進行優化或者開始進行監視以前,首先要創建一個基準數據和優化目標。這個基準包括硬件配置、組網、測試模型、系統運行數據(CPU/內存/IO/網絡吞吐/響應延時等)。咱們須要對系統作全面的評估和監控,才能更好的分析系統性能瓶頸,以及實施優化措施後系統的性能變化。優化目標便是基於當前的軟硬件架構所指望系統達成的性能目標。性能調優是一個長期的過程,在優化工做的初期,很容易識別瓶頸並實施有效的優化措施,優化成果每每也很顯著,可是越到後期優化的難度就越大,優化措施更難尋找,效果也將愈來愈弱。所以咱們建議有一個合理的平衡點。

2

壓力測試與監視瓶頸

使用峯值工做負載或專業的壓力測試工具,對系統進行壓力測試。使用一些性能監視工具觀察系統狀態。在壓力測試期間,建議詳細記錄系統和程序的運行狀態,精確的歷史記錄將更有助於分析瓶頸和確認優化措施是否有效。

3

肯定瓶頸

壓力測試和監視系統的目的是爲了肯定瓶頸。系統的瓶頸一般會在CPU過於繁忙、IO等待、網絡等待等方面出現。須要注意的是,識別瓶頸是分析整個測試系統,包括測試工具、測試工具與被測系統之間的組網、網絡帶寬等。有不少「性能危機」的項目實際上是因爲測試工具、測試組網等這些很容易被忽視的環節所致使的,在性能優化時應該首先花一點時間排查這些環節。

4

實施優化

肯定了瓶頸以後,接着應該對其進行優化。本文總結了筆者所在團隊在項目中所遇到的常見系統瓶頸和優化措施。咱們須要注意的是,系統調優的過程是在曲折中前進,並非全部的優化措施都會起到正面效果,負優化也是常常遇到的。因此咱們在準備好優化措施的同時,也應該準備好將優化措施回滾的操做指導。避免由於實施了一些不可逆的優化措施致使從新恢復環境而浪費大量的時間和精力。

5

確認優化效果

實施優化措施後,從新啓動壓力測試,準備好相關的工具監視系統,確認優化效果。產生負優化效果的措施要及時回滾,調整優化方案。若是有正優化效果,但未達到優化目標,則重複步驟2「壓力測試與監視瓶頸」,如達成優化目標,則須要將全部有效的優化措施和參數總結、歸檔,進入後續生產系統的版本發佈準備等工做中。

 

在性能調優經驗比較少或者對系統的軟硬件並非很是瞭解時,能夠參考使用五步法的模式逐步展開性能調優的工做。對於有豐富調優經驗的工程師,或者對系統的性能瓶頸已經有深刻洞察的專家,也能夠採用其餘方法或過程展開優化工做。

相關文章
相關標籤/搜索