<一>Windows
效能計數器分析
對象 |
計數器 |
分析 |
processor |
%processor time |
建議閾值85% |
memory |
Available bytes |
建議閾值少於4MB需要添加記憶體; 另外,又建議至少要有10%的實體記憶體值 |
Pages reads/sec |
Page Reads/sec 是指為解析硬頁錯誤而讀取磁碟的次數,如果該值一直持續較大,表明可能記憶體不足 建議閾值30(5。),大數值表示磁碟讀而不是緩衝讀 |
Pages writes/sec |
Page Writes/sec 是指為了釋放實體記憶體空間而將頁寫入磁碟的次數 |
Pages Input/sec |
Pages Input/sec 指為解決頁錯誤從磁碟上讀取的頁數 |
Pages Output/sec |
Pages Output/sec 是指為了釋放實體記憶體空間而寫入磁碟的頁數 如果該值遠遠大於Pages Input/sec,可能有記憶體泄露 |
Pages/sec |
Pages/sec 是指為解析硬頁錯誤從磁碟讀取或寫入磁碟的頁數 建議閾值20 |
Network interface (對於TCP/IP) |
Bytes received/sec |
該資料結合Bytes total/sec看 |
Bytes sent/sec |
該資料結合Bytes total/sec看 |
Bytes total/sec |
推薦不要超過頻寬的50% |
Packets/sec |
根據實際資料量大小,無建議閾值,該資料結合Bytes total/sec看 |
Physical disk |
Disk reads/sec |
取決於硬碟製造商的規格,檢查磁碟的指定傳送速度,以驗證此速度沒有超出規格 |
Disk writes/sec |
取決於硬碟製造商的規格,檢查磁碟的指定傳送速度,以驗證此速度沒有超出規格 又:上兩值相加,應小於磁碟裝置的最大容量 |
%Disk Time |
建議閾值90% |
Current disk queue length Avg. disk queue length(如果使用RAID裝置,%Disk Time計數器顯示的值可以大於100%。如果大於100%,則使用Avg. disk queue length計數器決定正在等待磁碟訪問的系統請求的平均數) |
不超過磁碟數的1.5~2倍 如果上兩值始終較高,可以考慮升級磁碟機或將某些檔案移動到其他磁碟或伺服器 |
一些注意事項 1. 如果監視不超過4個小時,則每15秒更新一次比較合理;如果將監視系統8個小時或更長時間,則設定的間隔不要小於300秒 2. 個人認為測試報告結果同時還要附上圖參考,因為單靠最小、最大和平均值還不能說明問題 3. 與物理磁碟計數器的資料不同,邏輯磁碟計數器的資料預設情況下不是由作業系統搜集。要獲得邏輯磁碟機或儲存卷的效能計數器資料,必須在命令提示字元下鍵入diskperf –yv。預設情況下,作業系統使用diskperf –yd命令包含物理磁碟機資料。使用命令diskperf的詳細資料,請在命令提示字元下鍵入diskperf -。。 4. 通常,決定效能是否可以接受是一種主觀判斷,隨使用者環境的變化而明顯地變化。 5. 記憶體不足是電腦系統中的嚴重性能問題最常見的原因。工作站響應速度很慢最有可能是記憶體和處理器問題造成的;伺服器更容易受到磁碟和網路問題的影響。 6. 在程式啟動時,每個程式的Process/%Processor Time值迅速攀升、降低,然後穩定。注意程式啟動時處理器的峰值非常重要;你可能要暫時忽略監視資料中高的啟動值,以獲得典型程式使用處理器情況的更精確的圖片。 7. 當記憶體減少時,作業系統開始通過從活動較少的程式的工作集(working set)中獲得記憶體來補充,因此,將看到一個程式工作集的增大,而其他程式的值減少。如果系統中沒有足夠的記憶體來滿足所有使用中的程式的要求,將發生記憶體頁交換,程式效能將受到影響。 8. 如果發生了記憶體流失,Process/Private Bytes計數器和Process/Working set 計數器的值往往會升高,同時Available bytes會降低。 9. 如果Process不見了,修改註冊表HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/PerfProc/Performance 下的Disable Performance Counters值為0. <二>效能分析
1。記憶體分析方法
記憶體分析用於判斷系統有無記憶體瓶頸,是否需要通過增加記憶體等手段提高系統效能表現。
記憶體分析需要使用的計數器:Memory類別和Physical Disk類別的計數器。記憶體分析的主要方法和步驟:
(1)首先查看Memory/Available Mbytes指標
如果該指標的資料比較小,系統可能出現了記憶體方面的問題,需要繼續下面步驟進一步分析。
註: 在UNIX/LINUX中,對應指標是FREE(KB)
(2)注意Pages/sec、Pages Read/sec和Page Faults/sec的值
作業系統回利用磁碟較好的方式提高系統可用記憶體量或者提高記憶體的使用效率。這三個指標直接反應了作業系統進行磁碟交換的頻度。
如果Pages/sec的技術持續高於幾百,可能有記憶體問題。Pages/sec值不一定大九表明有記憶體問題,可能是運行使用記憶體對應檔的程式所致。Page Faults/sec說明每秒發生頁面失效次數,頁面失效次數越多,說明作業系統向記憶體讀取的次數越多。此事需要查看Pages Read/sec的計數值,該計數器的閥值為5,如果計數值超過5(有點問題,路過者知道的可說下...),則可以判斷存在記憶體方面的問題。
註:在UNIX/LINUX系統中,對於指標是(page)si和(page)so.
(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並未降低,則是記憶體不足。
註:在UNIX/LINUX系統中,對應的指標是Reads(Writes)per sec、Percent of time the disk is busy和Average number of transactions waiting for service.
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 計數器的值並不一定很大,此時就必須尋找處理器阻塞的原因。
%DOC Time 是另一個需要關注的內容,該計數器越低越好。在多處理器系統中,如果這個值大於50%,並且Processor/%Precessor Time非常高,加入一個網卡可能回提高效能。
3。磁碟I/O分析方法
(1)計算梅磁碟的I/O數
梅磁碟的I/O數可用來與磁碟的I/O能力進行對比,如果經過計算得到的每磁碟I/O數超過了磁碟標稱的I/O能力,則說明確實存在磁碟的效能瓶頸。
每磁碟I/O計算方法
RAID0計算方法:(Reads +Writes)/Number of Disks
RAID0計算方法:(Reads +2*Writes)/2
RAID0計算方法:[Reads +(4*Writes)]/Number of Disks
RAID0計算方法:[Reads +(2*Writes)]/Number of Disks
(2)與Processor/Privileged Time 合并進行分析
如果在Physical Disk 計數器中,只有%Disk Time 比較大,其他值都比較適中,硬碟可能會是瓶頸。若幾個值都比較大,且數值持續超過80%,則可能是記憶體流失。
(3)根據Disk sec/Transfer進行分析
一般來說,定義該數值小於15ms為Excellent,介於15~30ms之間為良好,30~60ms之間為可以接受,超過60ms則需要考慮更換硬碟或是硬碟的RAID方式了。
4。進程分析方法
(1)查看進程的%Processor Time值
每個進程的%Processor Time反映進程所消耗的處理器時間。用不同進程所消耗的處理器時間進行對比,可以看出具體哪個進程在效能測試過程中消耗了最多的處理器時間,從而可以據此針對應用進行最佳化。
(2)查看每個進程產生的頁面失效
可以用每個進程產生的頁面失效(通過PRCESS/PAGE FAILURES/SEC計數器獲得)和系統頁面失效(可以通過MEMORY/PAGE FAILURES/SEC計數器獲得)的比值,來判斷哪個進程產生了最多的頁面失效,這個進程要麼是需要大量記憶體的進程,要麼是非常活躍的進程,可以對其進行重點分析。
(3)瞭解進程的Process/Private Bytes
Process/Private Bytes是指進程所分配的無法與其他進程共用的當前位元組數量。該計數器主要用來判斷進程在效能測試過程中有無記憶體流失。例如:對於一個IIS之上的WEB應用,我們可以重點監控inetinfo進程的Private Bytes,如果在效能測試過程中,該進程的Private Bytes計數器值不斷增加,或是效能測試停止後一段時間,該進程的Private Bytes仍然持續在高水平,則說明應用存在記憶體流失。
註:在UNIX/LINUX系統中,對應的指標是Resident Size
5。網路分析方法
Network Interface/Bytes Total/sec為發送和接收位元組的速率,可以通過該計數器值來判斷網路連結速度是否是瓶頸,具體操作方法是用該計數器的值和目前網路的頻寬進行比較。
RAID0計算方法:[Reads +(2*Writes)]/Number of Disks
(2)與Processor/Privileged Time 合并進行分析
如果在Physical Disk 計數器中,只有%Disk Time 比較大,其他值都比較適中,硬碟可能會是瓶頸。若幾個值都比較大,且數值持續超過80%,則可能是記憶體流失。
(3)根據Disk sec/Transfer進行分析
一般來說,定義該數值小於15ms為Excellent,介於15~30ms之間為良好,30~60ms之間為可以接受,超過60ms則需要考慮更換硬碟或是硬碟的RAID方式了。