2011年7月1日 星期五

效能監視器的進階應用 - Logman

        當問題發生時,最需要的就是有資料進行確認與還原問題,尤其是協助他人處理問題時,沒有相關的資料進行參考時,就有可能花費更多的時間進行處理,如最常遇到的效能調整就是一個典型的問題,而在Windows的平台中有一個很好用的資料收集器,就是效能監視器,但是由於此軟體可以收集的資料種類非常的多,如果收集的過多,會造成系統效能的負擔,而如果收集的太少,也會無法進行有的分析,而且如果要監控的電腦很多台的時候,就需要逐一的設定,所以在此提供一個內建的軟體(Logman),透過此軟體,可以事先將需要的物件種類範本準備好後,再產生一個效能監能器進行監控。

監控資料庫上常用到的物件種類:
  • System
    • Memory
    • Paging File
    • Process
    • Processor
    • System
    • Physical Disk
    • Network interface
  • SQL Server
    • SQL Server:Access Methods
    • SQL Server:Buffer Manager
    • SQL Server:Databases
    • SQL Server:General Statistics
    • SQL Server:Locks
    • SQL Server:Memory Manager
    • SQL Server:SQL Statistics
    • SQL Server:Transactions
    • SQL Server:Wait Statistics

Logman是一個可以透過指令的方式來進行效能監視器的設定與管理的軟體,方便進行監視器的設定步署。
操作方式:
  • CREATE COUNTER <CounterLogName>:建立[效能計數器]收集項目
  • Update <CounterLogName>:更新[效能計數器]收集項目
參數設定:
  • -f       :紀錄檔格式(bin|bincirc|csv|tsv|sql)
  • -max :紀錄檔案最大大小(MB)
  • -si     :每次收集間隔
  • -o      :輸出路徑或是SQL Server DSN
  • -cf    :指定[效能計數器]設定檔
  • -c      :收集的計數器名稱
  • -s      :收集的遠端電腦名稱
  • -b      :收集的起始時間
  • -e      :收集的結束時間
  • -v      :指定輸出檔名編號方式,格式為        nnnnnn|mmddhhmm
  • -r      :依據設定的起迄時間重複每天收集

使用範例:
假設我想要設定一個監控檔在客戶端,名稱為 [pm_new],輸出格式為[csv],每個檔案的最大容量為 [100] MB,每隔 [30] 秒收集一次,輸出的檔案放置在 [c:\pm_tmp\],每個檔案的前置名稱為 [log],檔案格式為 [月日時分],而為了大量步署,所以將範本檔案透過網路分享的方式放置在 [\\CARYHSU-COMPUTER\share\pm_template.xml]的電腦中,需要控監的電腦名稱為 [CARYHSU-COMPUTER],最後此監控在每天早上的 [11:00] 開始,[22:00] 結束。

指令:
1、建立效能監控
logman create counter pm_new -f csv -max 100 -si 30 -o c:\pm_tmp\log -v MMddHHmm -cf \\CARYHSU-COMPUTER\share\pm_template.xml -s CARYHSU-COMPUTER -b 11:00 -e 22:00 -r

2、更新效能監控
logman update pm_new -f csv -max 100 -si 30 -o c:\pm_tmp\log -v MMddHHmm -cf \\CARYHSU-COMPUTER\share\pm_template.xml -s CARYHSU-COMPUTER -b 11:00 -e 22:00 -r

範本說明:在範本的制作上可以先透過效能監器先將需要的物件種類選擇好了,再將其他的文字刪除,只剩下物件名稱的部份如下方的範列即可。

範本文件內容:
\Memory\Available MBytes
\Memory\Page Faults/sec
\MSSQL$SQL2008R2:Buffer Manager\Buffer cache hit ratio
\PhysicalDisk(_Total)\Avg. Disk Bytes/Read
\PhysicalDisk(_Total)\Avg. Disk Bytes/Write
\PhysicalDisk(_Total)\Avg. Disk Queue Length
\Processor(_Total)\% Processor Time

參考網址:
http://technet.microsoft.com/zh-tw/library/cc755366(WS.10).aspx

關鍵字:Performance MonitorLogman效能監視器資料收集

4 則留言:

  1. 請問有沒有辦法根據效能監視器中的 CPU使用率而在工作排程器中建立工作?即是如果使用率低於某個水平,便執行工作。

    回覆刪除
  2. Hi Mathew:
    根據您的需求,建議您可以透過程式的方式進行監控,透過程式中的Timer元件,當某物件的使用率低於觀察值的時候,就啟動 Performance Monitor的使用者定義的物件,或是結合Logman也可以,以下的連結提供給您參考。

    參考連結:
    建立 PerformanceCounter 元件執行個體
    http://msdn.microsoft.com/zh-tw/library/cc438005(v=vs.71).aspx

    回覆刪除
  3. 計數器範本可利用

    typeperf -q -o PerfMon_Counters_All.txt

    指令來快速產生,在整理一下就可以快速利用。

    快又正確的好幫手。

    回覆刪除
    回覆
    1. Hi Bruce,

      謝謝你的分享,但如同你所說,產生出的檔案是將所以計數器都列出,如果是要長期進行監控的話,最好整理一下,避免影響效能太多。

      刪除