使用「效能監視器」監視系統效能 執行情況

2022-04-02 06:41:39 字數 3991 閱讀 9910

windows 效能監視器概述

windows 效能監視器是乙個 microsoft 管理控制台 (mmc) 管理單元,提供用於分析系統效能的工具。僅從乙個單獨的控制台,即可實時監視應用程式和硬體效能,自定義要在日誌中收集的資料,定義警報和自動操作的閾值,生成報告以及以各種方式檢視過去的效能資料。

啟動 windows 效能監視器:開始-->執行—>輸入perfmon-->回車

新增-儲存計數器設定:

在windows 2003中,新增完計數器後,直接按ctrl+s,就能將設定儲存為檔案的形式,方便下次直接檢視,在win7中來的不那麼直接。

開始-->執行-->輸入mmc-->檔案-->新增/刪除管理單元-->選擇效能監視器-->新增,然後在效能(本地)中來新增你的計數器,這樣就可以儲存了,方便下次檢視。

執行截圖:

常用的監視計數器:

物件

計數器

說明

.net clr exceptions

# of exceps thrown / sec

顯示每秒鐘丟擲的異常數。這包括 .net 異常和轉換為 .net 異常的未受管異常。效能隨此數目的增大而下降。

.net clr memory

# bytes in all heaps

顯示其他四個計數器的總和:gen 0 堆大小、gen 1 堆大小、gen 2 堆大小以及大物件堆大小。此計數器表示 gc 堆上當前分配的記憶體(以位元組為單位)。此計數器的值總是比 process\private bytes 的值小,process\private bytes 對程序的 mem_commit 區域進行計數。private bytes minus # bytes in all heaps 就是由未受管物件提交的位元組數。

用於監視可能的記憶體洩漏,或者監視受管或未受管物件的記憶體使用率是否過大。

.net clr remoting

remote calls/sec

顯示每秒呼叫的遠端過程呼叫的數目。遠端過程呼叫是對呼叫方所在應用程式域之外的任何物件的呼叫。此計數器不是一段時間內的平均值;它顯示最近兩個樣本觀測值的差除以取樣間隔所得的結果。

.net data provider for oracle

numberoffreeconnections

連線池中可用連線的數量。

.net data provider for sqlserver

numberoffreeconnections

連線池中可用連線的數量。

process

% processor time

顯示所有程序執行緒用於執行指令的已用處理器時間的百分比。指令是計算機中的基本執行單位;執行緒是執行指令的物件;程序是執行程式時建立的物件。此計數中包含了處理某些硬體中斷和陷阱條件時執行的**。如果總的處理器時間較長,請使用此計數器確定導致 cpu 利用率很高的程序。

process

handle count

顯示此程序當前開啟的控制代碼的總數。此數字是此程序中的每個執行緒當前開啟的控制代碼總數。特定程序中控制代碼計數的增加可能是發生控制代碼洩漏的錯誤程序的症狀,這將導致伺服器上發生效能問題。此問題並不一定會出現,但是在一段時間內對其進行監視以確定是否發生控制代碼洩漏十分重要。

process

thread count

這個程序中正在活動的執行緒數目。指令是在處理器中基本的執行單位,執行緒是指執行指令的物件。每個執行的程序至少有乙個執行緒。

sqlserver:general statistics

user connections

顯示sqlserver目前連線的數量,而不是使用者數。如果該計數器超過255,那麼你需要將sqlserver的"maximum worker threads" 的配置值設定得比預設值255高。如果連線的數量超過可用的執行緒數,那麼sqlserver將共享執行緒,這樣會影響效能。"maximum worker threads"需要設定得比你伺服器曾經達到的最大連線數更高。

sqlserver:locks

number of deadlocks/sec

死鎖的數量/秒,死鎖對應用程式的可伸縮性非常有害,並且會導致惡劣的使用者體驗。該計數器的值必須為0。

logicaldisk

% free space

% free space 是所選邏輯磁碟驅動器上總計可用空間所佔的百分比。

physicaldisk

disk read bytes/sec

指在讀取操作時從磁碟上傳送位元組的速率。

physicaldisk

disk write bytes/sec

指在寫入操作時傳送到磁碟上的位元組速度。

預設狀況下,以下兩個計數器的開關是關著的,需要配置下%windir%\microsoft.net\framework64\v2.0.50727\config\machine.config如下開關的(32和64位作業系統的路徑也有不同),否則資料採集不到。

.net data provider for oracle

numberoffreeconnections

.net data provider for sqlserver

numberoffreeconnections

增加配置,並重啟相應的程序(重啟服務,或者是重啟iis等)

<

system.diagnostics

>

<

switches

>

<

addname

="connectionpoolperformancecounterdetail"

value

="4"

/>

switches

>

system.diagnostics

>

用c#採集計數器的資料:

雖然windows自帶了perfmon工具,並可以生成報告以及以各種方式檢視過去的效能資料,但是有時候我們還是定義自己的一些曲線或者報表,那麼就需要將效能監視器的資料收集起來,c#提供了performancecountercategory(效能物件),performancecounter(效能計數器元件)兩個類,提供了操作效能監視器的一些方法,這樣我們就能把資料讀取出來儲存到資料庫中或者檔案中,可用來隨意產生一些曲線或報表,或者報警mail等。。。

示例**:

class program

///

/// 獲取計數器樣本並為其返回計算所得值--有例項的計數器(對於大多數的計數器)

///

///

///

///

///

public

static

float getperfcount(string categoryname, string countername, string instance)

;counter.nextvalue();

thread.sleep(200);

try}

catch (exception)

return -1f;

}///

/// 獲取計數器樣本並為其返回計算所得值--無例項的計數器

/// 比如categoryname=sqlserver:general statistics,countername=user connections

///

///

///

///

public

static

float getperfcount(string categoryname, string countername)

;counter.nextvalue();

thread.sleep(200);

try}

catch (exception)

return -1f;}}

}

效能監視器

效能監視器捕捉硬體和軟體部件,如處理器 程序 執行緒等生成的效能資料,由此跟蹤資源狀態。執行效能監視器,通過執行命令提示符指令 perfmon如圖 為了獲得以前只在效能監視器中可用的大量資料的實時快照,sql server現在通過一組動態管理檢視 dmv 和動態管理函式 dmf 在內部提供了相同的資...

原創 效能測試之「Windows效能監視器」

原創 效能測試之 windows效能監視器 一 windows效能監視器 以下用winxp中的 windows效能監視器 為例說明 開啟控制面板 管理工具 效能 效能日誌和警報,如下圖所示 方法1 動態監視 點選右鍵後,選擇 新增計數器 如下圖所示 從 新增計數器 視窗中,選擇效能物件為 proce...

使用C 製做程序監視器

1 可以檢視程序的各項基本資訊,如cpu,記憶體,父程序,執行路徑,建立者等 2 可以中止程序,建立新程序 3 可以配置目標程序,配置重新整理速度 以下給出部分 其餘像程序的建立 中止等,使用process類將很容易實現 1 使用wmi獲取父程序id,程序建立者 注意,使用wmi獲得的內容,不宜迴圈...