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