Performance Monitor是Windows内置的一个可视化监控工具,能够在OS级别上实时记录系统资源的使用情况,通过收集和存储日志数据,在SQL Server发生异常时,能够还原系统当时的资源的使用情况,是对SQL Server进行Troubleshooting的首选工具。Performance Monitor使用Performance Counter来追踪系统的活动状态的测量值,取样间隔默认是15s,即,Performance Monitor每隔15s,记录Performance Counter的当前值。
Performance Monitor主要有两个组件:Viewer和Data Collector,分别用于查看和记录Performance Counter的测量值,开启Performance Monitor对Server的影响很微小,建议开启,多收集一些性能数据。
一,查看Viewer
1,打开 Performance Monitor
点击Windows+R,在Run中输入perfmon,打开Performance Monitor,主要分为三个目录:Monitoring Tools,Data Collector Sets 和 Reports。
2,查看Performance Monitor
Performance Monitor是Viewer,有两种查看模式:View Current Activity 和 View Log Data,前者用于实时监控当前数据,后者用于查看历史数据。
3,图表(Graph),显示计数器的测量值
能够选择时间区间(zoom to),能够选择显示和隐藏指定的Counter,能够缩放(Scale)Counter的值
4,Sample Interval,实时监控可以设置取样间隔和显示的数据长度
Performance Monitor的取样时间间隔由属性 Sample Interval 确定,通过Performance Monitor Properties -> General tab查看取样间隔设置
- 勾选Sample automatically:自动取样
- Sample Every X seconds:采样的时间间隔
- Duration X seconds:Viewer显示的时间长度,这是 Real-Time 监控模式下保持数据的最长时间
二,创建Data Collector
Data Collector用于记录Performance Counter的数值,默认存储在C:\PerfLogs 目录下,多个Data Collector的集合就是一个Data Collector Set。
1,创建自定义的Data Collector Set
展开Data Collector Sets,点击User Defined->New->Data Collector Set,输入Name,选择 Create Manually(Advanced),不使用模板,自定义创建。
2,创建数据日志
选择Create Data Logs,并勾选Performance Counter,通过Add按钮添加Performance Counter,默认的Sample Interval是15s。
3,添加Performance Counter
根据监控目的,选择合适的Counter,楼主创建的Data Collector用于监控Disk活动,主要选择以下7个计数器,通过Add按钮添加到右侧面板中。
4,设置Data Collector Set的Stop Condition,使数据文件Size不会超过限制
Windows使用Set来同一管理Data Collector,每个Data Collector的数据单独存储在文件中,如果数据文件过大,在查看时,Viewer加载过程缓慢,建议将Data Collector的数据文件控制在300MB以内。打开指定Data Collector Set的属性,切换到Stop Condition Tab,指定停止收集数据的条件。
Overall duration指定:在一定的时间之后,停止收集数据(stop collecting data after a period of time)
Limits指定:当数据收集满足Duration和Maximum Size条件时,将数据文件分离单独的数据文件。
- Use limits to segment data collection into separate logs by selecting When a limit is reached, restart the data collector set.
- If both limit types are selected, data collection will stop or restart when the first limit is reached.
- Duration:configure a time period for data collection to write to a single log file.
- Maximum Size:restart the Data Collector Set or to stop collecting data when the log file reaches the limit.
5,Data Manager,删除旧的无用数据
在Data Collector运行了很长世间之后,Data Collector创建的数据文件可能很大,必须及时将无用的数据清理掉,Data Manger负责清理数据文件。
选中指定的Data Collector Set,右击弹出快捷菜单,打开Data Manager。在Data Manager Tab中设置Maximum root path size=10GB,并勾选Enable Data Manager复选框;在Actions Tab中,增加一个Action,Age:30Days,勾选Delete Data Files,表示将超过30天的数据文件删除。
三,查看Reports,还原计数器在某个历史时间点的测量值
如果设置了Data Collector的Limits属性,将数据文件分段,那么在Disk Activity目录下,能看到多个文件,每个文件的大小不会超过Stop Condtition Tab的限制,楼主的文件大小不超过300MB,每个文件记录数据的时间不会大于6hours。
点击数据文件,Viewer就能自动加载数据,此时,Viewer处于View Log Data模式。
- 从图表面板,能够查看各个Counter,在特定时间点的测量值;
- 从时间轴,选中时间区间,右击选中Zoom To,能够缩放图表面板;
- 从Counter面板,能够显示或隐藏计数器,能对单个计数值按比例缩放(Scale);
四,开启Performance Monitor对Server性能影响很微小
在一个Production Server上,Performance Monitor运行很长一段时间之后,Task Management显示消耗的CPU和内存资源数量很小,如图:
引用《SQL Server 2012 实施与管理实战指南》:
默认的Performance Monitor 是用来Real-Time 检测系统的,在现实的问题分析中,更多的是需要在问题发生之前,开启Performance Counter来收集数据,一段时间之后,或者问题重现之后,通过收集的数据,离线分析问题的现象和原因。
有些DBA会担心,抓这么多Performance Counter会不会影响Server的性能,根据经验,Performance Monitor对系统整体性能的影响几乎感觉不到,所以,可以放心大胆地多收集一些Counter,时间间隔设置默认值 15s 是比较安全的。
如果性能日志文件超过1GB,在View Report时,加载log file会很慢,一般将日志文件的Size的最大值设置为300MB。这可以通过选择“Stop Condition” Tab,勾选 Maximum Size 设置日志文件的最大值为300MB来实现。
Performance Counter是性能监控的测量值,直接关系到监控的数据是否完善和合理,请继续阅读《Performance Monitor2:Peformance Counter》了解常用的计数器。
参考文档: