1. 程式人生 > >作業系統效能計數器、CPU分析、磁碟I/O分析、記憶體分析

作業系統效能計數器、CPU分析、磁碟I/O分析、記憶體分析

Window作業系統的主要效能技術器:

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

Linux/UNIX 作業系統的主要效能計數器:
  Linux系統的命令和UXIN的有些差別,在UNIX系統下的主要計數器監控命令是vmstat、iostat、top、sar、sag(圖形方式,需要XServer 支援);而在linux中,沒有isostat命令。另外他們的輸出結果也稍有差別。

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

  上面羅列了windows與linux系統下的效能計數器,分析一個作業系統的效能,應該檢視哪些指標。那麼作業系統的載體是系統硬體。那麼硬體的效能直接影響著作業系統的效能。下面就簡單分析一下系統的硬體。CPU、記憶體、磁碟。

CPU分析

  CPU的效能對於計算機整體的效能起著主導作用。對於早期對計算機甚至直呼其CPU的型號,如 386 、486、奔三,奔四。

  那麼我們CPU效能最直接的評估就是檢視其CPU工作頻率,就是CPU的時鐘頻率,單位為是Hz。隨著CPU的發展,主頻由MHz現在的GHz

  (1GHz=1000MHz=1000000KHz=1000000000Hz)

  處理器除了主頻指標外,還有另外兩個密切相關的概念:倍頻與外頻。外頻是cpu的基準頻率,單位是MHz。外頻是CPU與主機板之間同步執行的速度,而且目前的絕大部分計算機系統中外頻與是記憶體與主機板之間的同步執行速度,在這種方式下,可以理解為CPU的外頻直接與記憶體相連通。實現兩都的同步執行狀態;倍頻即主頻與外頻之間的倍數。
  
  主頻 = 外頻 * 倍數
  
如何真對CPU進行分析?

1)檢視System\%Total Processor Time 效能計數器的計數值。

  該計數值用於體現伺服器整體的處理利用率,對於多處理器來講,該數值體現的是所有CPU的平均利用率。如果該數值大於持續大於90% ,表示CPU有可能存在平靜。

2)檢視每個CPU的Processor\%User Time

  Processor\%User Time是指系統的非核心消耗的CPU時間,如果該值較大,可以考慮通過演算法優化來降低該值。如果該伺服器是資料庫伺服器,Processor\%User Time值大的原因很可能是資料庫的排序或是函式操作消耗了過多的CPU時間,此時可以考慮對資料庫進行優化。

3)檢視Processor\%Processor Time 和 System\Processor Queue Length

  檢視System\Processor Queue Length 計算器,當該計數器的值大於CPU數量的總數加1時,說明CPU產生了賭塞。但產生賭塞時,Processor\%Processor Time的值不一定很大,此時就必須檢視CPU賭塞的原因。

4)檢視%DPC Time

 %DPC Time 是另一個需要關注的內容,該計數值越低越好。在多CPU系統中,如果該值大於50% 並且Processor\%Processor Time值非常高,則考慮加一個網絡卡來提高效能。

磁碟I/O分析

硬碟應該是計算機硬體中發展最慢的裝置,很多常見瓶頸都是由於硬碟的讀/寫速度慢導致的。提高硬碟讀/寫效能無非是提高轉速、提高單碟容量,增加快取和更新介面,因為傳統的硬碟是物理旋轉讀寫資料,所以轉速的提高相當困難;而提高單碟容量也存在一寫的技術瓶頸,1TB的單碟的容量想要突破還也需要時間。

  對於傳統的溫氏硬碟到現在速度也只能達到120MB/s的讀取速度,這個速度還真對大檔案的讀寫,而對於伺服器大量4KB的小檔案讀/寫速度,會驚人的下跌至1MB不到,而對應的IOPS(每秒磁碟的讀/寫次數)會低得可憐,大量的資料都在排隊從硬碟上讀取到記憶體中,再利用記憶體的超大頻寬完成操作。這也是為什麼記憶體大的系統比較快的原因。但記憶體的速度雖然比硬碟快得多,也有其致命的缺點,一旦斷電,記憶體中的資料將全部丟失。

  IOPS(Input/Output Per Second)每秒磁碟的輸入/輸出量(或讀/寫次數),是衡量磁碟效能的主要指標之一。IOPS是指單位時間內系統能處理的I/O請求數量,一般以每秒處理的I/O請求數量為單位。

  另一個重要指標是資料吞吐量(Throughput),指單位時間內可以成功傳輸的資料數量。對於大量順序讀/寫應用,則更關注吞吐量指標。

傳統的溫氏硬碟完成一個I/O請求所花費的時間包括 尋道時間、旋轉延遲和資料傳輸時間三部分。

  * 尋道時間,是指將讀寫磁頭移動至正確的磁軌上所需要的時間。目前磁碟的平均尋道時間一般在3~15ms

  * 旋轉延遲,是指碟片旋轉將請求資料所在扇區移至讀/寫磁頭下方所需要的時間。7200轉速的磁碟,平均旋轉言辭大於為60 * 1000/7200/2=4.17ms

  * 資料傳輸時間,是指完成傳輸所請求的資料所需要的時間。目前SATA II 可達到300MB/s的介面資料傳輸速率。資料傳輸時間通常遠小於前兩部分時間。

如何分析磁碟I/O

1)與 Processor/Privileged Time 合併進行分析。

 如果在Physical Disk 計算器,只有%Disk Time 值較大,其它值都比較適中,則硬碟可能會是瓶頸。若幾個值都比較大,且數值持續超過80% ,內裡可能是記憶體洩漏。

2)根據Disk sec/Transfer 進行分析

一般來說,定義Transfer 數值小於15毫秒為優秀,介於15~20毫秒之間為良好,30~60毫秒之間為可以接受,超過60毫秒則需要考慮更換硬碟或硬碟的RAID方式。(注意:各種不同的RAID其計算方式也不完全相同)

固態硬碟SSD是一種電子裝置,避免了傳統硬碟在尋道和旋轉上的時間花費,儲存單元定址開銷大大降低,因些IOPS可以非常高。

記憶體分析

1)檢視Memory\Available Mbytes指標。

  這個計數器是描述系統可用記憶體的直接指標,在對系統進行作業系統級別的記憶體分析時,首先通過這個指標建立一個初步的印象,瞭解效能測試過程中系統是否仍然有足夠的記憶體可用。
如果這個指標的資料比較小,系統可能出現了記憶體方面的問題。

2)Pages/sec 、 Pages Read/sec 和Page Faults/sec指標

  作業系統經常會利用磁碟交換的方式提高系統可用的記憶體量或記憶體的使用效率。這三個指標直接反映了作業系統進行磁碟交換的頻度。

  如果Pages/sec 的計數器持續高於幾百,很可能會有記憶體方面的問題產生,但Pages/sec的值很大不一定表明記憶體有問題,而可能是執行使用記憶體對映檔案的程式所導致。Page Faults/sec 值表示每秒發生頁面失效的次數,頁面失效次數越多,說明作業系統向記憶體讀取的次數越多。些時還需要檢視Pages Read/sec 的計數值,該計數器的閥值為5,如果計數值超過5,則可以判斷記憶體存在問題。

3)根據Physical Disk計數器的值分析效能瓶頸

   Physical Disk 計數器的分析包括對Pages Read/sec和 %Disk Time及Average Disk Queue Length 的分析。如果Pages Read/sec 很低,同時%Disk Time和Average Disk Queue Length 的值很高,則可能有磁碟瓶頸。但是,如果佇列長度增加的同時 Page Read/sec 並未降低,則是由於記憶體不足。