為什么需要性能調優?
你有沒有在手機、PC上玩網游、看高清視頻的時候,抱怨過“太慢了”、“好卡”?
大多數人會把這些影響體驗的問題歸結到“網速太慢”上,除此之外還有個更重要的根因,就是系統性能瓶頸問題所致,倘若你換一臺配置更高、內存更大、性能更好的設備玩游戲,上述問題馬上就能迎刃而解。
同樣的問題也存在于服務器上,作為千行百業的數字化基礎設施,服務器承載了大量復雜的行業應用,支撐著數字社會的高效運轉。因此,服務器要面臨的各種瓶頸挑戰更多也更大。普通用戶可以通過更換手機這種簡單粗暴的方式來提升游戲體驗,對于服務器這種昂貴的設備來說顯然不合適。
事實上即使更換了更好的設備,依然可能再次出現性能瓶頸,這是因為系統性能往往是多方面的,包括服務器硬件(如CPURAM)、應用軟件(Web服務器、數據庫等)、應用程序、操作系統、網絡設備等眾多配置和指標的合集,某一個指標出現問題,都可能導致系統運行緩慢。這時候,我們更需要的其實是“系統性能調優”。
什么是系統性能調優呢?
簡單的說就是綜合、全面的了解系統硬件、操作系統和應用軟件的相關信息,分析其配置和運行情況,調節各模塊之間的系統資源占用關系,實現整個系統的性能最大化,從而不斷的滿足業務需求。
性能分析是一項復雜的系統化的工作,業界有非常多的性能分析小工具,專業分析系統各模塊的性能,然而眾多工具的使用不僅帶來大量的學習成本、分析效率低下,更重要的是數據不能互通,無法全局分析,并且需要依靠非常嫻熟的經驗才能針對各模塊的問題進行調優。開發者亟需更加全面、專業、智能化的系統調優工具。
DevKit系統性能分析工具是什么?
DevKit性能分析工具正是為了滿足上述需求而設計,DevKit性能分析工具是一個工具集,包含:系統性能分析工具、JAVA性能分析工具、系統診斷工具,本文將重點介紹系統性能分析工具。
系統性能分析工具
系統性能分析工具主要針對服務器系統(包括:硬件、OS、應用軟件等)進行性能分析,能收集服務器硬件、操作系統、進程/線程、函數等各層次的性能數據,分析得出系統性能指標,定位到系統瓶頸點及熱點函數,給出優化建議,輔助用戶快速定位和處理軟件性能問題。相對業界性能分析工具,該工具主要增強實現如下能力:
提供軟硬件結合分析能力,采集和分析硬件性能指標,以及硬件性能在軟件層的表現,讓用戶更加全面的了解整個系統的運行狀況。
系統化的分析建立各層指標之間的關聯關系、并以用戶視角呈現這些指標和關系,方便用戶更易于發現問題。
結合華為在鯤鵬處理器上的性能優化經驗,給出優化思路和建議,幫忙用戶快速定位和修復問題。
DevKit系統性能分析工具有哪些功能?
系統性能分析工具提供3大模塊9大主要功能:
通用分析:采集和分析整個系統的軟硬件配置信息、識別性能瓶頸,針對異常指標項提供優化建議(包含全景、進程/線程和熱點函數分析);
系統部件分析:針對系統主要部件(如:處理器、內存、存儲等)暴露的硬件指標,結合系統軟件運行指標,分析各部件的性能瓶頸(包含微架構、訪存和I/O分析);
專項分析:針對特定性能問題進行專題分析(包含資源調度、鎖與等待和HPC分析)。其中全景分析、熱點函數分析、資源調度分析是開發者最常使用的分析場景,本文將對這些功能做詳細介紹。
全景分析——全面掌握系統配置和整體性能
通過采集系統軟硬件配置信息,以及系統的CPU、內存、存儲IO、網絡IO等資源的運行情況,獲得對應的使用率、飽和度、錯誤次數等指標,以此識別系統性能瓶頸。針對部分系統指標項,將根據當前已有的基準值和優化經驗提供優化建議。
Figure 2 系統硬件拓撲圖及其配置
支持展示服務器系統及其各個子系統的拓撲結構及其配置。方便用戶快速了解系統配置,及是否存在配置不合理的點,例如:內存條配置位置不合理。
Figure 3 系統性能指標
基于USE性能分析方法,針對系統CPU、內存、磁盤IO、網絡IO等資源的運行情況,獲得它們的使用率、飽和度、錯誤等指標,以此識別系統瓶頸。
綜合分析系統性能和系統配置情況,給出檢測到的性能瓶頸點,并給出優化建議和修改方法。
Figure 4 解決方案場景軟硬件配置及其優化建議
針對大數據、數據庫、分布式存儲場景的硬件配置、系統配置和組件配置進行檢查并顯示不是最優的配置項,同時分析給出典型硬件配置及軟件版本信息。
支持分析C/C++程序代碼識別性能瓶頸,給出對應的熱點函數以及源碼和匯編指令的信息。通過冷/熱火焰圖展示函數的調用關系,發現優化路徑。
Figure 5 熱點函數/模塊及其優化建議
分析給出系統和應用的Top熱點函數和熱點模塊,并給出優化建議,其中針對華為優化或實現的基礎庫、數據庫等會給出詳細的優化說明和下載鏈接。
Figure 6 熱點指令及其源碼
針對熱點函數可以關聯到它的匯編指令和源碼,并且明確標識出熱點指令或熱點代碼塊,用戶可以直接針對優化。
Figure 7熱點函數及其調用棧
資源調度分析——跟蹤CPU核和進程狀態切換情況
基于CPU調度事件分析系統資源調度情況,包括:CPU核在各個時間點的運行狀態、進程/線程在各個時間點的運行狀態、進程/線程狀態切換情況等,用戶根據這些信息可以分析進程/線程是否存在大量的系統調用、不合理的鎖或同步等,以此找到優化點。
Figure 8 進程/線程切換信息
分析進程/線程調度信息,識別線程是否頻繁上下文切換、CPU是否能及時調度等性能問題。分析進程/線程在NUMA節點的切換情況,對于頻繁切換,給出綁核優化建議。
Figure 9 CPU核運行狀態
分析CPU核在各個時間點的運行狀態,如:idle、running等。如果是running狀態,能關聯在CPU核上運行的進程/線程信息。支持高亮顯示某個線程在各個CPU核上的運行情況。
Figure 10 進程/線程運行狀態
分析進程/線程在各個時間點的運行狀態,如:wait_blocked、wait_for_cpu和running,能方便識別頻繁上下文切換的線程。
DevKit性能分析工具還有哪些能力?
鯤鵬開發套件DevKit是面向開發者研發全作業流程的一站式開發套件,從2019年推出至今,提供了覆蓋代碼開發、遷移、編譯、測試、調優、診斷等研發全作業流程的工具集,助力開發者極簡開發。
其中DevKit性能分析工具支持鯤鵬平臺上的系統性能分析、Java性能分析和系統診斷提供系統全景及常見應用場景下的性能采集和分析功能,并基于調優專家系統給出優化建議。同時提供調優助手,指導用戶快速調優系統性能。
本文所介紹的系統性能分析僅是DevKit性能分析工具的主要能力之一,為了便于廣大開發者們更加真實的體驗、使用上述功能,DevKit還提供遠程實驗室,一站式預裝DevKit開發環境,申請即可免費試用。
原文標題:【DevKit黑科技揭秘】│深入淺出DevKit性能調優,讓系統“瓶頸”無處遁形
文章出處:【微信公眾號:華為計算】歡迎添加關注!文章轉載請注明出處。
責任編輯:pj
-
服務器
+關注
關注
12文章
9125瀏覽量
85334 -
操作系統
+關注
關注
37文章
6808瀏覽量
123285 -
硬件
+關注
關注
11文章
3315瀏覽量
66203 -
DevKit
+關注
關注
0文章
8瀏覽量
7705
原文標題:【DevKit黑科技揭秘】│深入淺出DevKit性能調優,讓系統“瓶頸”無處遁形
文章出處:【微信號:gh_3a181fa836b6,微信公眾號:華為計算】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論