標籤:
前端時間在做動態目標監控,應用程式需要考慮大資料量和多使用者並發的操作,系統的效能是解決方案實施性的重要度量。這裡簡單的記錄下Windows中效能監控查看和簡單分析。
一般作業系統效能主要涉及到的問題主要有:處理器使用方式、記憶體佔有量、磁碟I/0操作以及網路流量等。
查看Windows效能情況,大部分情況下是通過 “Windows工作管理員”,可以通過在 ”命令列” 中輸入 : taskmgr 來彈出工作管理員。 ”工作管理員”可以查看:CUP的使用率、記憶體的使用率 以及 網路傳輸量情況。
使用Windows工作管理員比較直觀,UI效果也不錯。但是也有些弊端,如:可參考的績效參數不夠全面、不能長時間記錄效能情況 以及 沒有效能報告日誌等等。
Perfmon效能監控器是windows內建的一個效能工具,主要可以提供作業系統的一些基本資料,比如記憶體、CPU、IO、網路相關的資訊,同時提供圖形化報表,日誌、跟蹤和警報等功能。可以通過cmd的perfmon進入。
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時間,此時可以考慮對資料庫系統進行最佳化。
記憶體效能計數器
Memory:Available Mbytes
可以使用的記憶體大小。如果該指標的資料比較小,系統可能出現了記憶體方面的問題
Memory:Pages/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/sec、Pages Read/sec和Page Faults/sec的值
作業系統回利用磁碟較好的方式提高系統可用記憶體量或者提高記憶體的使用效率。這三個指標直接反應了作業系統進行磁碟交換的頻度。
Pages/sec值持續高於幾百,可能有記憶體問題。Pages/sec值不一定大就表明有記憶體問題,可能是運行使用記憶體對應檔的程式所致。
Page Faults/sec說明每秒發生頁面失效次數,頁面失效次數越多,說明作業系統向記憶體讀取的次數越多。此時需要查看Pages Read/sec的計數值,該計數器的閥值為5,如果計數值超過5,則可以判斷存在記憶體方面的問題。
(3)根據Physical Disk計數器的值分析效能瓶頸
對Physical Disk計數器對象的分析包括對Page Reads/sec和%Disk Time及Aerage Disk Queue Length的分析。如果Pages Read/sec很低,同時%Disk Time和Average Disk Queue Length的值很高,則可能有磁碟瓶頸。但是,如果隊列長度增加的同時Pages Read/sec並未降低,則是記憶體不足。
2.處理器分析法
(1)首先看System:%Total Processor Time 效能計數器的計數值
該計數器的值體現伺服器整體處理器利用率,對多處理器的系統而言,該計數器提醒所有CPU的平均利用率。如果該值持續超過90%,則說明整個系統面臨著處理器方面的瓶頸,需要通過增加處理器來提高效能。
註:多處理器系統中,該資料本身不大,但PUT直接負載狀況極不均衡,也應該視作系統產生處理器方面瓶頸。
(2)其次查看每個CPU的Processor: \%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進行分析
一般來說,定義該數值小於15ms為Excellent,介於15~30ms之間為良好,30~60ms之間為可以接受,超過60ms則需要考慮更換硬碟或是硬碟的RAID方式了。
4。進程分析方法
(1)查看進程的Process:%Processor Time值
每個進程的%Processor Time反映進程所消耗的處理器時間。用不同進程所消耗的處理器時間進行對比,可以看出具體哪個進程在效能測試過程中消耗了最多的處理器時間,從而可以據此針對應用進行最佳化。
(2)查看每個進程產生的頁面失效
可以用每個進程產生的頁面失效(通過process:PAGE FAILURES/SEC計數器獲得)和系統頁面失效(可以通過memory:PAGE FAILURES/SEC計數器獲得)的比值,來判斷哪個進程產生了最多的頁面失效,這個進程要麼是需要大量記憶體的進程,要麼是非常活躍的進程,可以對其進行重點分析。
(3)瞭解進程的Process:Private Bytes
Process:Private 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%,則可能是記憶體流失。
Windows效能監控器