Windows性能監視器數值分析(轉)

前端時間在做動態目標監控,應用程序需要考慮大數據量和多用戶併發的操作,系統的性能是解決方案實施性的重要度量。這裏簡單的記錄下Windows中性能監視查看和簡單分析。

一般操作系統性能主要涉及到的問題主要有:處理器使用情況、內存佔有量、磁盤I/0操作以及網絡流量等。

查看Windows性能情況,大部分情況下是通過 “Windows任務管理器,可以通過在命令行中輸入 : taskmgr來彈出任務管理器。任務管理器可以查看:CUP的使用率、內存的使用率以及 網絡傳輸量情況。

     使用Windows任務管理器比較直觀,UI效果也不錯。但是也有些弊端,如:可參考的性能參數不夠全面、不能長時間記錄性能情況以及 沒有性能報告日誌等等。

Perfmon性能監視器是windows自帶的一個性能工具,主要可以提供操作系統的一些基本數據,比如內存、CPUIO、網絡相關的信息,同時提供圖形化報表,日誌、跟蹤和警報等功能。可以通過cmdperfmon進入。

      

     perfmon的計數器主要分四種:處理器性能計數器、內存性能計數器、磁盤性能計數器以及網絡性能計數器。

這裏的對象指的是性能監視器對象.對於任何一個對象都會有多個計數器- [計數器名字]-並且可能會有多個實例..在系統中有多個處理器或者系統有多個硬盤的時候就是這樣的。

這裏介紹下常見的幾個計數器,介紹格式:[對象] : [計數器名] [解釋/說明]

 

    處理器性能計數器

    處理器對象主要關注系統中的CPU.注意有些系統有多個CPU,計數器對每一個CPU都會有一個獨立的實例來顯示。

    Processor : % Processor Time

    當前所有進程的處理器時間[CPU使用率],如果該值持續超過95%CPU是瓶頸。% Processor Time=100% - Idle process時間比例 [即:空閒線程(Idle Thread)]CPU沒事的時候就執行空閒線程。

     Processor% User Time

    是系統非核心操作消耗的CPU時間,如果是數據庫服務器的話,%User Time值大的原因很可能是數據庫的排序或是函數操作消耗了過多的CPU時間,此時可以考慮對數據庫系統進行優化。

內存性能計數器

MemoryAvailable Mbytes

     可以使用的內存大小。如果該指標的數據比較小,系統可能出現了內存方面的問題

MemoryPages/sec

    表明由於硬件頁面錯誤而從磁盤取出的頁面數,或由於頁面錯誤而寫入磁盤以釋放工作集空間的頁面數。一般如果Pages/sec持續高於幾百,那麼您應該進一步研究頁交換活動。有可能需要增加內存,以減少換頁的需求。Pages/sec的值很大不一定表明內存有問題,而可能是運行使用內存映射文件的程序所致。計數器的比率高表示分頁過多.

Memory:Page Faults/sec Memory:Page Reads/sec計數器測量內存性能。

    當進程所引用的虛擬內存頁不在內存中時,將發生頁錯誤,Memory:Page Faults/sec表示頁錯誤的個數。如果某頁已在主內存中,或者它正被共享此頁的其他進程使用,那麼就不會從磁盤調入該頁。

     Memory:Page Reads/sec是讀取磁盤,以提取解決頁錯誤所需頁的次數。從總體上講,這兩個計數器反映了訪問磁盤的頻率,其值越低,說明響應時間越短。

   網絡性能計數器

    主要看Network Interface對象

   Network Interface:Bytes received/sec

每秒接受到的數據爲多少Bytes,該數據結合Bytes total/sec分析

Network Interface:Bytes sent/sec

每秒發送數據爲多少Bytes,該數據結合Bytes total/sec分析

Network Interface:Bytes total/sec

機器接受和發送的總共爲多少Bytes推薦不要超過帶寬的50%

Network Interface:Packets/sec

每秒的數據包個數,根據實際數據量大小,無建議閾值,該數據結合Bytes total/sec分析

 

  性能分析

  1、內存分析方法

      內存分析用於判斷系統有無內存瓶頸,是否需要通過增加內存等手段提高系統性能表現。

      內存分析需要使用的計數器:Memory類別和Physical Disk類別的計數器。內存分析的主要方法和步驟:

       (1)首先查看Memory: Available Mbytes指標

           如果該指標的數據比較小,系統可能出現了內存方面的問題,需要繼續下面步驟進一步分析。

       (2)注意Memory: Pages/secPages Read/secPage Faults/sec的值

           操作系統回利用磁盤較好的方式提高系統可用內存量或者提高內存的使用效率。這三個指標直接反應了操作系統進行磁盤交換的頻度。

           Pages/sec值持續高於幾百,可能有內存問題。Pages/sec值不一定大就表明有內存問題,可能是運行使用內存映射文件的程序所致。

           Page Faults/sec說明每秒發生頁面失效次數,頁面失效次數越多,說明操作系統向內存讀取的次數越多。此時需要查看Pages Read/sec的計數值,該計數器的閥值爲5,如果計數值超過5,則可以判斷存在內存方面的問題。

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

          Physical Disk計數器對象的分析包括對Page Reads/sec%Disk TimeAerage Disk Queue Length的分析。如果Pages Read/sec很低,同時%Disk TimeAverage Disk Queue Length的值很高,則可能有磁盤瓶頸。但是,如果隊列長度增加的同時Pages Read/sec並未降低,則是內存不足。

 

2.處理器分析法

(1)首先看System%Total Processor Time 性能計數器的計數值

     該計數器的值體現服務器整體處理器利用率,對多處理器的系統而言,該計數器提醒所有CPU的平均利用率。如果該值持續超過90%,則說明整個系統面臨着處理器方面的瓶頸,需要通過增加處理器來提高性能。

     注:多處理器系統中,該數據本身不大,但PUT直接負載狀況極不均衡,也應該視作系統產生處理器方面瓶頸。

(2)其次查看每個CPUProcessor \%Processor Time Processor\%User Time Processor\%Privileged Time

      Processor: %User Time是系統非核心操作消耗的CPU時間,如果該值較大,可以考慮是否能通過友好算法等方法

降低這個值。如果該服務器是數據庫服務器, Processor\%User Time值大的原因很可能是數據庫的排序或是函數操作消耗了過多的CPU時間,此時可以考慮對數據庫系統進行優化。

(3)研究系統處理器瓶頸

    查看 System: Processor Queue Length計數器的值,當該計數器的值大於CPU數量的總數+1時,說明產生了處理器阻塞。在處理器的%Process Time很高時,一般都隨處理器阻塞,但產生處理器阻塞時,Processor: %Process Time

數器的值並不一定很大,此時就必須查找處理器阻塞的原因。

 

 3。磁盤I/O分析方法

     (1)計算每磁盤的I/O

每磁盤的I/O數可用來與磁盤的I/O能力進行對比,如果經過計算得到的每磁盤I/O數超過了磁盤標稱的I/O能力,則說明確實存在磁盤的性能瓶頸。

     (2)Processor: Privileged Time合併進行分析

    如果在Physical Disk計數器中,只有%Disk Time比較大,其他值都比較適中,硬盤可能會是瓶頸。若幾個值都比較大,且數值持續超過80%,則可能是內存泄漏。

     (3)根據Disk sec/Transfer進行分析

    一般來說,定義該數值小於15msExcellent,介於1530ms之間爲良好,3060ms之間爲可以接受,超過60ms則需要考慮更換硬盤或是硬盤的RAID方式了。

 

 4。進程分析方法

      (1)查看進程的Process:%Processor Time

     每個進程的%Processor Time反映進程所消耗的處理器時間。用不同進程所消耗的處理器時間進行對比,可以看出具體哪個進程在性能測試過程中消耗了最多的處理器時間,從而可以據此針對應用進行優化。

     (2)查看每個進程產生的頁面失效

    可以用每個進程產生的頁面失效(通過processPAGE FAILURES/SEC計數器獲得)和系統頁面失效(可以通過memory:PAGE FAILURES/SEC計數器獲得)的比值,來判斷哪個進程產生了最多的頁面失效,這個進程要麼是需要大量內存的進程,要麼是非常活躍的進程,可以對其進行重點分析。

     (3)瞭解進程的ProcessPrivate Bytes

ProcessPrivate Bytes是指進程所分配的無法與其他進程共享的當前字節數量。該計數器主要用來判斷進程在性能測試過程中有無內存泄漏。例如:對於一個IIS之上的WEB應用,我們可以重點監控inetinfo進程的Private Bytes

如果在性能測試過程中,該進程的Private Bytes計數器值不斷增加,或是性能測試停止後一段時間,該進程的Private Bytes仍然持續在高水平,則說明應用存在內存泄漏。

 

      5。網絡分析方法

     (1)Network Interface:Bytes Total/sec爲發送和接收字節的速率,可以通過該計數器值來判斷網絡鏈接速度是否是瓶頸,具體操作方法是用該計數器的值和目前網絡的帶寬進行比較。

     (2)Processor:Privileged Time合併進行分析

    如果在Physical Disk計數器中,只有%Disk Time比較大,其他值都比較適中,硬盤可能會是瓶頸。若幾個值都比較大,且數值持續超過80%,則可能是內存泄漏。

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