使用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参数的小结。

使用Perfmon和PAL工具查看Server性能--其他PerfMon日志性能分析工具_第1张图片

下面展示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]

使用Perfmon和PAL工具查看Server性能--其他PerfMon日志性能分析工具_第2张图片

下面的实例创建了一个名叫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参数,它可以使收集器能够在远程计算机上创建、开启和停止。

使用Perfmon和PAL工具查看Server性能--其他PerfMon日志性能分析工具_第3张图片

使用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)。

你可能感兴趣的:(使用Perfmon和PAL工具查看Server性能--其他PerfMon日志性能分析工具)