本文參考html
https://jingyan.baidu.com/article/a3761b2bdfa24b1576f9aa8e.htmlmysql
https://www.cnblogs.com/luo-mao/p/5872374.htmlsql
https://wenku.baidu.com/view/68e03e5e910ef12d2bf9e706.html數據庫
測試關注點:通常操做系統性能主要涉及到的指標:處理器使用狀況、內存佔有量、磁盤I/0操做以及網絡流量等。windows
Performance Monitor自己也是一個進程,運行起來也要佔用必定的系統資源。因此你看到的資源的使用量應該比實際的要稍微高一點。這個工具在幫助管理員判斷系統性能瓶頸時很是有用。舉個列子來講,今天有個用戶抱怨說他們項目組的服務器(這是一臺虛擬機)運行起來很是慢,但也不知道具體問題出在什麼地方。任務管理器裏顯示CPU和內存的使用量都不算高,但服務器的相應就是很是慢。打開Performance Monitor,讓其運行一段時間後(由於參考平均值會比較準確),發現average disk queue的值比較高,這就說明物理服務器的硬盤負荷過重,I/O操做的速度跟不上系統的要求。關掉虛擬機,將其轉移到另外一臺硬盤負載比較小的主機上,再打開虛擬機。問題就解決了。緩存
一、Windows服務器中自帶的性能監控工具叫作Performance Monitor,在開始-運行中輸入‘Perfmon.msc’,而後回車便可運行。經過界面,控制面板\全部控制面板項\管理工具\性能監視器也能打開服務器
打開後,頁面展現網絡
二、添加計數器app
性能>數據收集器集>用戶定義[右擊]>新增‘數據收集器集’>手動建立高級>下一步工具
勾選建立數據日誌>性能計數器>【下一步】
點擊「添加」→選擇計數器
點擊選中的可用計數器>【添加】>【肯定】
【肯定】>【下一步】
選擇目錄後,點擊【完成】
查看新增的計數器,輸出地方爲日誌輸出地址
三、選擇日誌數據源格式
選擇用戶定義下的數據收集器集>右鍵屬性>性能計數器,日誌格式選擇「逗號分隔」(即csv格式)
四、開始啓動數據採集,選擇用戶定義下的數據收集器集>右鍵屬性>開始
此時,輸出有地址了
五、用EXCEL將數據轉換爲折線圖,並分析性能狀況
(1)內存泄露判斷
●虛擬內存字節數(VirtualBytes)應該遠大於工做集字節數(Workingset),若是二者變化規律相反,好比說工做集增加較快,虛擬內存增加較少,則可能說明出現了內存泄露的狀況。
●對於Workingset、Private Bytes、Available bytes這些計數器,若是在測試期間內數值持續增加,並且測試中止後位置在高水平,則也說明存在內存泄露。
●Windows資源監控中,若是Process\PrivateBytes計數器和Process\WorkingSet計數器的值在長時間內持續升高,同時Memory\Available
bytes計數器的值持續下降,則極可能存在內存泄漏。
(2)CPU使用狀況
●通常平均不要超過70%,最大不要超過90%(好:70% 、壞:85%、 不好:90%)
(3)tps(每秒處理事務的數量,在SOAPUI中進行統計)
●通常在10-100,不一樣應用程序具體值不一樣
幾個經常使用參數的參考值: CPU: % Processor Time:表示CPU的使用率,若是值大於80表示CPU的處理調度能力偏低。 硬盤: % Disk Time:表示硬盤的I/O操做的頻率(繁忙時間),若是值大於80表示硬盤I/O調度能力偏低。 Average Disk Queue Length:表示硬盤I/O操做等待隊列的長度,若是值大於2表示硬盤I/O調度能力偏低。 內存 Pages/Sec:表示系統對虛擬內存每秒鐘的訪問次數,若是值大於20表示有內存方面的問題。(有多是物理內存偏低,也有多是虛擬內存沒有配置正確。通常狀況下虛擬內存應爲物理內存的1.5-2倍) Committed Bytes and Available Bytes:Committed Bytes表示虛擬內存的大小,Available Bytes表示剩餘可用內存的大小。正常狀況下,Available Bytes減小,pages(頁面數)應該增長,提供頁面交換。
若是Available Bytes的值很小表示物理內存偏低。當關閉一些應用之後,Committed Bytes應該減小,Available Bytes應該增長。由於關閉的進程釋放了以前佔用的內存資源。若是相應的值沒有發生變化,那麼該進程就可能形成了內存泄漏。 Cache Bytes:表示系統緩存的大小。若是值大於4M表示物理內存偏低。
perfmon的計數器主要分四種:處理器性能計數器、內存性能計數器、磁盤性能計數器以及網絡性能計數器。
如下爲監控服務器經常使用的計數器:
經常使用的性能對象與指標 |
||
性能對象 |
計數器 |
提供的信息 |
Processor |
% Idle Time |
% Idle Time 是處理器在採樣期間空閒的時間的百分比 |
Processor |
% Processor Time |
% Processor Time 指處理器用來執行非閒置線程時間的百分比。計算方法是,測量範例間隔內非閒置線程活動的時間,用範例間隔減去該值。這個計數器是處理器活動的主要說明器,顯示在範例間隔時所觀察的繁忙時間平均百分比。 |
Processor |
% User Time |
% User Time 指處理器處於用戶模式的時間百分比。用戶模式是爲應用程序、環境分系統和整數分系統設計的有限處理模式。 |
Memory |
Available Bytes |
Available Bytes顯示出當前空閒的物理內存總量。當這個數值變小時,Windows開始頻繁地調用磁盤頁面文件。若是這個數值很小,例如小於5 MB,系統會將大部分時間消耗在操做頁面文件上。 |
Memory |
% Committed Bytes in Use |
% Committed Bytes In Use 是 Memory: Committed Bytes 與Memory: Commit Limit之間的比值。(Committed memory指若是須要寫入磁盤時已在分頁文件中保留空間的處於使用中的物理內存。Commit Limit是由分頁文件的大小而決定的。若是擴大了分頁文件,該比例就會減少)。這個計數器只顯示當前百分比;而不是一個平均值。 |
Memory |
Page Faults/sec |
Page Faults/sec是指處理器處理錯誤頁的綜合速率。用錯誤頁數/秒來計算。當處理器請求一個不在其工做集(在物理內存中的空間)內的代碼或數據時出現的頁錯誤。這個計數器包括硬錯誤(那些須要磁盤訪問的)和軟錯誤(在物理內存的其它地方找到的錯誤頁)。許多處理器能夠在有大量軟錯誤的狀況下繼續操做。可是,硬錯誤能夠致使明顯的拖延。這個計數器顯示用上兩個實例中觀察到的值之間的差除以實例間隔的持續時間所得的值。 |
Network Interface |
Bytes Total/sec |
Bytes Total/sec是發送和接收字節的速率,包括幀字符在內。 |
Network Interface |
Packets/sec |
Packets/sec爲發送和接收數據包的速率。 |
Physical Disk |
% Busy Time |
% Busy Time指磁盤驅動器忙於爲讀或寫入請求提供服務所用的時間的百分比。 |
Physical Disk |
Avg. Disk Queue Length |
Avg. Disk Queue Length 指讀取和寫入請求(爲所選磁盤在實例間隔中列隊的)的平均數。 |
Physical Disk |
Current Disk Queue Length |
Current Disk Queue Length指在收集操做數據時在磁盤上未完成的請求的數目。它包括在快照內存時正在爲其提供服務中的請求。這是一個即時長度而非必定間隔時間的平均值。多主軸磁盤設備能夠一次有多個請求操做,可是其它同時發生的請求爲等候服務。這個計數器可能會反映一個暫時的高或低的列隊長度,可是若是在磁盤驅動器存在持續負載,可能值會老是很高。請求等待時間與這個列隊的長度減去磁盤上的主軸成正比。這個差值應小於2才能保持良好的性能。 |
Logical Disk |
% Free Space |
% Free Space 是所選定的邏輯磁盤驅動器上總的可用空閒空間的百分比。 |
Logical Disk |
Free Megabytes |
可用的 MB 顯示磁盤驅動器上還沒有分配的空間。 |
如下爲監控進程經常使用的計數器:
Process對象的主要指標 |
||
性能對象 |
計數器 |
提供的信息 |
Process |
% Privileged Time |
% Privileged Time 是在特權模式下處理線程執行代碼所花時間的百分比。當調用 Windows 系統服務時,此服務常常在特權模式運行,以便獲取對系統專有數據的訪問。在用戶模式執行的線程沒法訪問這些數據。對系統的調用能夠是直接的(explicit)或間接的(implicit),例如頁面錯誤或間隔。 |
Process |
% Processor Time |
% Processor Time 是全部進程線程使用處理器執行指令所花的時間百分比。指令是計算機執行的基礎單位。線程是執行指令的對象,進程是程序運行時建立的對象。此計數包括處理某些硬件間隔和陷阱條件所執行的代碼。 |
Process |
% User Time |
% User Time 指處理線程用於執行使用用戶模式的代碼的時間的百分比。應用程序、環境分系統和集合分系統是以用戶模式執行的。Windows 的可執行程序、內核和設備驅動程序不會被以用戶模式執行的代碼損壞。 |
Process |
Creating Process ID value |
Creating Process ID value 指建立該進程的父進程號。 |
Process |
Elapsed Time |
該進程運行的總時間(用秒計算)。 |
Process |
Handle Count |
由這個處理如今打開的句柄總數。這個數字等於這個處理中每一個線程當前打開的句柄的總數。 |
Process |
ID Process |
ID Process 指這個處理的特別的識別符。ID Process 號可重複使用,因此這些 ID Process 號只能在一個處理的壽命期內識別那個處理。 |
Process |
IO Data Bytes/sec |
處理從 I/O 操做讀取/寫入字節的速度。這個計數器爲全部由本處理產生的包括文件、網絡和設備 I/O 的活動計數。 |
Process |
IO Data Operations/sec |
本處理進行讀取/寫入 I/O 操做的速率。這個計數器爲全部由本處理產生的包括文件、網絡和設備 I/O 的活動計數。 |
Process |
IO Other Bytes/sec |
處理給不包括數據的 I/O 操做(如控制操做)字節的速率。這個計數器爲全部由本處理產生的包括文件、網絡和設備 I/O 的活動計數。 |
Process |
IO Other Operations/sec |
本處理進行非讀取/寫入 I/O 操做的速率。例如,控制性能。這個計數器爲全部由本處理產生的包括文件、網絡和設備 I/O 的活動計數。 |
Process |
IO Read Bytes/sec |
處理從 I/O 操做讀取字節的速度。這個計數器爲全部由本處理產生的包括文件、網絡和設備 I/O 的活動計數。 |
Process |
IO Read Operations/sec |
本處理進行讀取 I/O 操做的速率。這個計數器爲全部由本處理產生的包括文件、網絡和設備 I/O 的活動計數。 |
Process |
IO Write Bytes/sec |
處理從 I/O 操做寫入字節的速度。這個計數器爲全部由本處理產生的包括文件、網絡和設備。 |
Process |
IO Write Operations/sec |
本處理進行寫入 I/O 操做的速率。這個計數器爲全部由本處理產生的包括文件、網絡和設備 I/O 的活動計數。 |
Process |
Page Faults/sec |
Page Faults/sec 指在這個進程中執行線程形成的頁面錯誤出現的速度。當線程引用了不在主內存工做集中的虛擬內存頁即會出現 Page Fault。若是它在備用表中(即已經在主內存中)或另外一個共享頁的處理正在使用它,就會引發沒法從磁盤中獲取頁。 |
Process |
Page File Bytes |
Page File Bytes 指這個處理在 Paging file 中使用的最大字節數。Paging File 用於存儲不包含在其餘文件中的由處理使用的內存頁。Paging File 由全部處理共享,而且 Paging File 空間不足會防止其餘處理分配內存。 |
Process |
Page File Bytes Peak |
Page File Bytes Peak 指這個處理在 Paging files 中使用的最大數量的字節。 |
Process |
Pool Nonpaged Bytes |
Pool Nonpaged Bytes 指在非分頁池中的字節數,非分頁池是指系統內存(操做系統使用的物理內存)中可供對象(指那些在不處於使用時不能夠寫入磁盤上並且只要分派過就必須保留在物理內存中的對象)使用的一個區域。這個計數器僅顯示上一次觀察的值;而不是一個平均值。 |
Process |
Pool Paged Bytes |
Pool Paged Bytes 指在分頁池中的字節數,分頁池是系統內存(操做系統使用的物理內存)中可供對象(在不處於使用時能夠寫入磁盤的)使用的一個區域。這個計數器僅顯示上一次觀察的值;而不是一個平均值。 |
Process |
Priority Base |
此次處理的當前基本優先權。在一個處理中的線程能夠根據處理的基本優先權提升或下降本身的基本優先權。 |
Process |
Private Bytes |
Private Bytes 指這個處理不能與其餘處理共享的、已分配的當前字節數。 |
Process |
Thread Count |
在此次處理中正在活動的線程數目。指令是在一臺處理器中基本的執行單位,線程是指執行指令的對象。每一個運行處理至少有一個線程。 |
Process |
Virtual Bytes |
Virtual Bytes 指處理使用的虛擬地址空間的以字節數顯示的當前大小。使用虛擬地址空間不必定是指對磁盤或主內存頁的相應的使用。虛擬空間是有限的,可能會限制處理加載數據庫的能力。 |
Process |
Virtual Bytes Peak |
Virtual Bytes Peak 指在任什麼時候間內該處理使用的虛擬地址空間字節的最大數。 |
Process |
Working Set |
Working Set 指這個處理的 Working Set 中的當前字節數。Working Set 是在處理中被線程最近觸到的那個內存頁集。若是計算機上的可用內存處於閾值以上,即便頁不在使用中,也會留在一個處理的 Working Set中。當可用內存降到閾值如下,將從 Working Set 中刪除頁。若是須要頁時,它會在離開主內存前軟故障返回到 Working Set 中。 |
Process |
Working Set Peak |
Working Set Peak 指在任什麼時候間這個在處理的 Working Set 的最大字節數。 |