三大套路帶你通關 CPU 性能優化 | 極客時間

無論是運維還是開發,和 Linux 打交道、在服務器上分析系統性能是每個技術人的日常。然而,性能優化也是軟件系統中最有挑戰的工作之一,就算看了很多資料和書籍,但一旦涉及到解決具體問題,還是難免困惑不已,比如,

  • 性能指標和性能分析工具那麼多,我該怎麼掌握和選擇呢?
  • 即使會用指標和工具,又該如何快速定位性能瓶頸呢?
  • 找到性能瓶頸後,接下來該怎麼優化呢?

以上三點,可以說是性能優化工作的重中之重。不過不要擔心,憑藉多年的性能優化經驗,我總結出三大套路,帶你攻下性能優化這一難關,分別是:

  • “性能指標/工具”指南;
  • “又快又準”的瓶頸定位套路;
  • 優化工作的必備思路。

當然,性能優化工作,離不開對系統原理的把握。從系統層面,我將其分爲 CPU 性能、內存性能、I/O 性能和網絡性能四大板塊,並分別整理了對應的解決思路。今天我們就先以 CPU 性能爲例,看看這些套路是怎麼用的。

“指標/工具”指南

首先是對於性能指標和工具的掌握。我的經驗是,從兩個不同的維度來理解它們,做到活學活用,把性能指標和性能工具聯繫起來。

第一個維度,從 CPU 的性能指標出發。當你要查看某個性能指標時,要清楚地知道哪些工具可以做到。根據不同的性能指標,對提供指標的性能工具進行分類和理解。這樣,在排查性能問題時,你就會知道什麼工具可以提供你想要的指標,而不是毫無依據地挨個嘗試,撞運氣。

第二個維度,從工具出發。當你安裝了某個工具後,要知道這個工具能提供哪些指標。這在實際環境,特別是生產環境中非常重要。因爲在很多情況下,你並沒有權限安裝新的工具包,只能最大化地利用好系統中已經安裝的工具,這就需要你對它們有足夠的瞭解。

具體到每個工具的使用方法,一般都支持豐富的配置選項。這些配置選項你並不用背下來,只要知道有哪些工具、以及這些工具的基本功能是什麼就夠了。真正要用到的時候, 通過 man 命令,查詢它們的使用手冊就可以。

當然,這些常見指標和工具的對應關係,我製作了“指標-工具指南”和“工具-指標指南”兩張圖表,方便你梳理關係和理解記憶。

11 | 套路篇:如何迅速分析出系統CPU的瓶頸在哪裏?

瓶頸定位套路

其次是快速定位性能瓶頸的套路。CPU 的性能指標比較多,而且它們之間並不是孤立的,很多指標間都有一定的關聯。掌握不同指標之間的關聯性,你就可以簡化大多數問題了。

同樣的,我製作了一張 CPU 性能指標和工具的關聯圖,列出了 top、vmstat 和 pidstat 分別提供的重要 CPU 指標,並用虛線表示關聯關係,對應出了性能分析下一步的方向。

你可以保存這張圖,作爲CPU性能分析的思路圖譜。從最核心的這幾個工具開始,通過我提供的案例,自己在真實環境裏實踐,拿下它們。

優化必備思路

最後是具體的優化思路。這裏我們首先要形成清晰的性能優化方法論。

從目的上說,我們解決性能問題是爲了得到性能提升的效果,要明確並評估這種性能優化的效果,爲此我總結了“性能評估三步走”,你可以參考使用:

  1. 確定性能的量化指標;
  2. 測試優化前的性能指標;
  3. 測試優化後的性能指標。

從操作上來說,多維度指標的選擇、多性能問題的選擇、多優化方法的選擇,這三者都是我們考慮的重點。

12 | 套路篇:CPU 性能優化的幾個思路

訂閱專欄,瞭解更多”套路“

內存性能篇:21 | 套路篇:如何“快準狠”找到系統內存的問題?
I/O性能篇:30 | 套路篇:如何迅速分析出系統I/O的瓶頸在哪裏?
網絡性能篇:36 | 套路篇:怎麼評估系統的網絡性能?

專欄簡介

在專欄中,我結合自己多年的實戰經驗,以案例驅動的思路,爲你講解了 Linux 性能的基本指標、工具,以及相應的觀測、分析和調優方法,讓你學後可以立即應用在自己的優化工作中。針對評論區那些有代表性的問題,我專門設立了答疑篇章,爲大家解惑的同時也可以爲其他學習專欄的同學提供參考。

學完專欄後,你將獲得:

  • Linux 常用的性能分析工具合集
  • 30 個 Linux 性能問題診斷思路
  • 讀懂 CPU、內存、I/O 等指標
  • 5 個真實的線上環境分析案例

內容選自極客時間《Linux性能優化實戰》專欄

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章