學(xué)習(xí)筆記-Linux性能優(yōu)化-開篇

??性能優(yōu)化一直是大多數(shù)軟件工程師頭上的"緊箍咒", 甚至工作多年的資深工程師也無法準(zhǔn)確分析線上的很多性能問題。
??我認(rèn)為性能問題如此難的原因主要為它是一個(gè)系統(tǒng)工程,牽一發(fā)而動(dòng)全身,涉及到的知識(shí)面較廣,包括程序、算法分析、編程語言,再到系統(tǒng)、存儲(chǔ)、網(wǎng)絡(luò)等各種底層的基礎(chǔ)設(shè)施。每個(gè)組件都可能會(huì)出現(xiàn)問題,而且很有可能多個(gè)組件同同時(shí)出問題。
??毫無疑問,性能優(yōu)化是軟件系統(tǒng)中最有挑戰(zhàn)的工作之一,但是換個(gè)角度來看,如果我們掌握了性能優(yōu)化的各個(gè)關(guān)鍵點(diǎn),那一定大大會(huì)提升你的綜合能力。
??如何才能掌握這個(gè)技能呢?我認(rèn)為是鉆研+實(shí)戰(zhàn),帶著問題學(xué)習(xí),而不是去啃厚厚的原理書籍。在這個(gè)學(xué)習(xí)的過程中,要學(xué)會(huì)抓住重點(diǎn),只需要了解少數(shù)系統(tǒng)組件的基本原理和協(xié)作方式,掌握基本的性能指標(biāo)和工具,學(xué)會(huì)實(shí)際工作中性能優(yōu)化的技巧,你就可以準(zhǔn)確的分析和優(yōu)化大多數(shù)的性能問題了。在此為前提再反過來閱讀經(jīng)典的操作系統(tǒng)或者其他圖書才會(huì)事半功倍。
??我們只需要理解應(yīng)用程序和系統(tǒng)少數(shù)的幾個(gè)基本原理,在進(jìn)行大量的實(shí)戰(zhàn)練習(xí),建立起整體性能的全局觀,大多數(shù)性能問題的優(yōu)化就會(huì)水到渠成。
??學(xué)習(xí)性能優(yōu)化的第一步,要了解"性能指標(biāo)"的概念,看到這個(gè)概念,我們想到的肯定是 "高并發(fā)" 和 "響應(yīng)"快, 實(shí)際上它們也對(duì)應(yīng)性能優(yōu)化的兩個(gè)核心指標(biāo),"吞吐"和"延時(shí)",這個(gè)兩個(gè)指標(biāo)是從應(yīng)用負(fù)載的視角來考慮性能的,如果從系統(tǒng)資源的角度來看,比如資源使用率、飽和度等等。

性能指標(biāo)

??性能分析,其實(shí)就是找出應(yīng)用或者系統(tǒng)的瓶頸,并設(shè)法去避免或者緩解它們,從而更加高效的利用系統(tǒng)資源處理更多的事務(wù)。這包含了一系列的步驟,比如:
????選擇指標(biāo)評(píng)估應(yīng)用程序和系統(tǒng)的性能;
????為應(yīng)用程序和系統(tǒng)設(shè)置性能目標(biāo);
????進(jìn)行性能基準(zhǔn)測(cè)試;
????性能分析定位瓶頸;
????優(yōu)化系統(tǒng)和應(yīng)用程序;
????性能監(jiān)控和告警;


Linux性能工具

??上述為性能領(lǐng)域大師布倫丹 格雷格描繪的性能工具圖譜,這張圖描述了在 Linux 不同子系統(tǒng)出現(xiàn)性能問題時(shí),應(yīng)該用什么樣的工具來觀測(cè)和分析。但是性能工具不是學(xué)習(xí)的全部,工具只是解決問題的手段,關(guān)鍵在于你的用法。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容