Nmon性能監控(1)


1. Nmon性能監控

LinuxUnix最大的區別:前者是開發源代碼的自由軟件;而后者是對源代碼實行知識產權保護的傳統商業軟件。

另外兩大區別:

  • UNIX系統大多是與硬件配套的,而Linux則可運行在多種硬件平台上.
  • UNIX是商業軟件,而Linux是自由軟件,免費、公開源代碼的. UNIX(5萬美元)Linux免費

 

如何監控Linux性能

  • Vmstat ------查看系統狀態、硬件和系統信息等
  • Top  ------ 查看進程活動狀態以及一些系統狀況
  • iostat ------查看CPU 負載,硬盤狀況

vmstat 是個查看系統整體性能的小工具,小巧、即使在很 heavy 的情況下也運行良好,並且可以用時間間隔采集得到連續的性能數據。

 

參數介紹:

  • r,可運行隊列的線程數,這些線程都是可運行狀態,只不過 暫時未執行;
  • b,被阻塞( blocked) 的進程數,正在等待 IO 請求;
  • in,被處理過的中斷數
  • cs,系統上正在做上下文切換的數目
  • us,用戶占用 CPU 的百分比
  • sys,內核和中斷占用 CPU 的百分比
  • wa,所有可運行的線程被 blocked 以后都在等待 IO,這時候 CPU 空閑的百分比
  • idCPU 完全空閑的百分比
  • swpd,已使用的 SWAP 空間大小,KB 為單位;
  • free,可用的物理內存大小,KB 為單位;
  • buff,物理內存用來緩存讀寫操作的 buffer 大小,KB 為單位;
  • cache,物理內存用來緩存進程地址空間的 cache 大小,KB 為單位;
  • si,數據從 SWAP 讀取到 RAMswap in)的大小,KB 為單位;
  • so,數據從 RAM 寫到 SWAPswap out)的大小,KB 為單位;
  • bi,磁盤塊從文件系統或 SWAP 讀取到 RAMblocks in)的大小,block 為單位;
  • bo,磁盤塊從 RAM 寫到文件系統或 SWAPblocks out)的大小,block 為單位;

 

分清不同系統的應用類型很重要,通常應用可以分為兩種類型:

IO 相關,IO 相關的應用通常用來處理大量數據,需要大量內存和存儲,頻繁 IO 操作讀寫數據,而對 CPU 的要求則較少,大部分時間CPU 都在等待硬盤,比如,數據庫服務器、文件服務器等。

CPU 相關,CPU 相關的應用需要使用大量 CPU,如高並發的 web/mail 服務器、圖像/視頻處理、科學計算等都可視作 CPU 相關的應用。

實例,第1個是文件服務器拷貝一個大文件時表現出來的特征,第2個是 CPU 做大量計算時表現出來的特征:  

 

 

上面兩個例子最明顯的差別就是 id 一欄,代表 CPU 的空閑率,拷貝文件時候 id 維持在 50% 左右,CPU 大量計算的時候 id 基本為 0

 

性能檢測CPU

CPU 的占用主要取決於CPU 上執行的事務類型,如拷貝文件通常占用較少 CPU,因為大部分工作是由 DMADirect Memory Access)完成,只是在完成拷貝以后給一個中斷讓 CPU 知道拷貝已經完成;但科學計算通常占用較多的 CPU,大部分計算工作都需要在 CPU 上完成,內存、硬盤等子系統只做暫時的數據存儲工作。

准備知識-----操作系統基本知識,如:中斷、進程調度、進程上下文切換、可運行隊列等。

測試CPU的參考依據:

通常系統能到達以下目標:

CPU 利用率:如果 CPU 100% 利用率,那么應該到達這樣一個平衡:65%-70User Time30%-35System Time0%-5Idle Time

上下文切換:上下文切換應該和 CPU 利用率聯系起來看,如果能保持上面的 CPU 利用率平衡,大量的上下文切換是可以接受的;

可運行隊列:每個可運行隊列不應該有超過13個線程(每處理器),比如:雙處理器系統的可運行隊列里不應該超過6個線程。

實例分析:

 

從上面的數據可以看出幾點:

  • Interruptsin)非常高,context switchcs)比較低,說明 CPU 一直在不停的請求資源;
  • system timesy)一直保持在 80% 以上,而且上下文切換較低(cs),說明某個進程可能一直占用 CPU
  • run queuer)剛好在4個。

 

性能檢測Memory

這里的“內存”包括物理內存和虛擬內存。

虛擬內存(Virtual Memory)把計算機的內存空間擴展到硬盤,物理內存(RAM)和硬盤的一部分空間(SWAP)組合在一起作為虛擬內存為計算機提供了一個連貫的虛擬內存空間;

優點:內存 ”變多了“,可以運行更多、更大的程序;

缺點:把部分硬盤當內存用整體性能受到影響,硬盤讀寫速度要比內存慢幾個數量級,並且 RAM SWAP 之間的交換增加了系統的負擔。

SWAP

LINUX下的虛擬內存分區,它的作用是在物理內存用完之后,將磁盤空間(也就是SWAP分區)虛擬成內存來使用.

需要注意的是,雖然這個SWAP分區能夠作為“虛擬”的內存,但它的速度比物理內存要慢很多

大小一般設為物理內存的2

案例分析:

某一天,一個客戶打電話來需要技術幫助,並抱怨平常15秒就可以打開的網頁現在需要20分鍾才可以打開( RedHat .

性能分析步驟

首先使用vmstat 查看大致的系統性能情況,如下圖所示:

 

分析:

  • 不會是內存不足導致,因為swap 始終沒變化(si so).盡管空閑內存不多(free),swpd 也沒有變化.
  • CPU 方面也沒有太大問題,盡管有一些運行隊列(procs r),但處理器還始終有50% 多的idle(CPU id).
  • 有太多的上下文切換(cs)以及disk blockRAM中被讀入(bi).
  • CPU 還有平均20% I/O 等待情況.

結論: 從以上總結出,這是一個I/O 瓶頸.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM