1. 程式人生 > >使用Perfmon和PAL工具檢視Server效能--其他PerfMon日誌效能分析工具

使用Perfmon和PAL工具檢視Server效能--其他PerfMon日誌效能分析工具

這節評估評估管理、操作及翻譯PerfMon日誌的常見工具。由於PerfMon日誌能夠被儲存或轉換為逗號間隔值(comma-separated value (CSV))檔案,因此有很多選項可以用於資料分析,包括把檔案裝載到SQL Server,或用Excel分析,或幾乎任何其他資料操作工具。

使用SQL Serve分析PerfMon日誌

當通過其他方法分析資料麻煩且耗力時,使用SQL Server分析大量的效能日誌便是有用的解決方案。CSV檔案資料裝載可以利用SSMS的ad hoc匯入/匯出嚮導,也可以將其自動化及計劃。SQL Server不能讀取原始的binary log file (BLG)檔案型別,所以你應該把PerfMon日誌以CSV檔案型別的格式寫入日誌檔案,或者使用Relog工具把檔案從BLG轉換成CSV。PerfMon也可以通過DSN把日誌直接寫到SQL Server,儘管該程序有額外的開銷,但它可以通過寫日誌到檔案來避免。在資料庫裡分析PerfMon日誌,可以通過熟悉的T-SQL,這意味著更容易識別問題,你可以寫查詢語句來尋找特殊的問題條件。這裡舉個例子,該例子有3個條件,用以識別低記憶體條件:Available memory少於100MB,Page life expectancy小於60秒和Buffer cache hit ratio低於98%。如果PerfMon日誌已經匯入到SQL Server,下面的查詢能夠識別出低記憶體狀況存在時資料捕獲期間的任何例項:

SELECT * FROM subset WHERE Mem_Avail_Bytes < 1000000 AND Buff_Mgr_PLE < 60 AND Buff_Cache_Hit_Ratio < 98

這個例子可以修改,以反映資料匯入期間指定的表和列名,但是理念可用於很多場景。另外,這種方法可以用於管理貫穿很多伺服器的效能資料,並且可用用Reporting Services來呈現資料。

把PerfMon日誌和SQL Profiler追蹤結合起來
SQL Server 2005首先可以用的功能是可以把PerfMon日誌和SQL Profiler追蹤結合起來。使用Profiler結合日誌這種方式檢視執行在SQL Server上的T-SQL程式碼,結合執行程式碼的硬體影響,例如高CPU或低記憶體。組合檢視呈現一個時間軸,可以通過選擇CPU峰值發生的時刻來導航時間軸;Profiler追蹤自動重定位到峰值時正在執行的T-SQL。

使用Relog

可以使用Relog對已存在的PerfMon日誌,以新的取樣頻率或不同的檔案格式建立新的日誌檔案。Windows XP首先包含了Relog,Relog在處理大型日誌或包含很多過剩計數器時是有用處的。另外,有這樣的情景,即當日志包含數小時的資料,但是感興趣的時間範圍更短;Relog能夠幫助提取感興趣的時間窗用以更容易的分析。表10-7顯示了Relog引數的小結。

下面展示3個例項場景,Relog在這3個場景中是有用的,包括語法使用。

提取指定時間窗的效能資料

這種技巧在使用PerfMon記錄數小時或數天日誌時很有用。例如3月15日10:30 AM發生問題,提取10:00AM~11:00AM期間的時間範圍是有用的,它提供一個可管理的日誌大小,不會丟失任何資料點。命令如下:Relog Server001_LOG.blg -b 15/03/2012 10:00:00 -e 15/03/2012 11:00:00 -o Server001_LogExtract.blg

提取指定的效能計數器

Relog引數-c可以指定計數器,夏澳門的例子僅提取記憶體相關的計數器,並保持到新建立的日誌檔案:Relog Server001_Log.blg -c "\Memory\*" -o Server001Memory_Log.blg。另外,可以通過傳遞包含計數器子集的文字檔案(一個計數器一行)來執行更復雜的過濾:Relog Server001_Log.blg -cf CounterList.txt -o Server001Overview_Log.blg。

把日誌檔案轉換成新的格式

PerfMon建立的日誌檔案預設是BLG格式的。下面的例子顯示瞭如何將BLG檔案轉換成CSV檔案:Relog Server001_Log.blg -f CSV -o Server001_Log.csv

使用LogMan

LogMan可以用於計劃開始和停止日誌。這是Windows計劃或PerfMon自帶的計劃功能的有用替代。使用LogMan最大的好處是你可以集中控制性能監視的開始和結束。使用LogMan,可以定義一個數據收集器,並將其從一臺伺服器複製到多臺伺服器。表10-8概括了LogMan命令列活動。語法如下:

logman [create|query|start|stop|delete|update|import|export] [options]

下面的例項建立了一個名叫DBOverviewLog的收集器,它包括所有處理器、記憶體和LogicalDisk計數器,取樣間隔為30秒,最大的日誌檔案大小為254MB:

Logman create counter "DBOverviewLog" -si 30 -v nnnn -max 254 -o "D:\logs\DBOverview" -c "\Processor(*)\*" "\Memory(*)\*" "\LogicalDisk(*)\*"

表10-9描述了LogMan的4個可用選項,包括有用的-s引數,它可以使收集器能夠在遠端計算機上建立、開啟和停止。

使用LogMan可以寫指令碼從整個應用環境收集基線資料集。這在做效能測試、基線應用程式效能或現場問題故障排除時是非常有用的。

使用LogParser

LogParser是個易於使用但很強大的工具,用於日誌檔案分析,推廣來自IIS web伺服器的分析日誌。LogParser可以用於檢查日誌型別的範圍,並能以不同形式提供輸出。一旦安裝了,LogParser能夠偽-SQL(pseudo-SQL)查詢日誌檔案。這在查詢Windows Event Logs、IIS logs或PerfMon logs時非常有用。LogParser屬於Windows Resource Kit,可以從www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=24659單獨下載。在使用LogParser分析日誌之前,PerfMon日誌必須轉換成CSV(使用Relog)。