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