第21/24周 性能监控(PAL工具)
大家好,欢迎来到性能调优培训的最后一个月。在过去的5个月里,我们谈了SQL Server的各种性能相关的话题,包括性能调优的技术和问题。
但当在你面前,SQL Server没有按你预想的运行时,你会怎么办?为了帮你处理这个情况,今天我们会谈到下性能监控技术,下周我们会详细谈到SQL Server里所谓的等待统计(Wait Statistics)。现在开始我们的性能监控。
让我们建立一个基线!
很多人坐在他们的SQL Server前,知道它的性能非常差,却不知道如何找出潜在的根源,也不知道如何解决它。对这个问题,我的答案非常简单:监控并收集当前情况的信息,和你的基线(baseline)比较,识别出最突出的性能瓶颈。是的,你没听错:你需要建立基线来识别性能问题,不然的话就是在瞎猜。下图显示了在建立的基线上,在SQL Server里,一个非常简单的识别并解决性能问题的方法。

这个方法的思路非常简单。在第1步里你需要收集一些SQL Server的关键指标。这些关键指标作为你的初始基线。在下一部分我会谈下你应该收集的关键指标。在你建立了你的基线后,你可以开始在抓取的数据里识别最常见的性能问题。在下一部分你会看到,有一些免费的工具,可以用它来自动完成这个操作。
最后,你一次只做一个修改来解决识别出来的性能问题。你没有看错:对你要解决的识别出来的性能问题,你应该只应用一个修改到你的SQL Server。如果一次修改太多,你就不能确认,哪个修改解决了你的性能问题,还有哪个修改损害了你的性能。这对性能故障排除非常重要!
在你应用你的改变后,你可以再次测试下你的关键指标,和你建立的基线来验证下你的修改是好还是坏。在这一步你收集的心的关键指标,可以作为你新的基线。很简单,是不是?唯一你要意识到的是你要定义一个放行准则(exit criteria)。在SQL Server里,你可以反复通过这个循环。因此你要定义对于你的SQL Server,什么时候的性能才是“足够好”。
收集关键指标
当我们讨论建立基线时,总会有个问题,你应该包含哪些关键指标?对于SQL Server,有太多不同的相关性能计数器,SQL Server本身也对它的健康状况提供很多相关数据的不同DMV。因为不想让事情变得复杂,在第一步我只抓取一些东西来获得SQL Server健康状态的大致情况。
- 一些特定的SQL Server性能相关的计数器
- 等待统计(Wait Statistics)
- I/O延迟统计信息(I/O Latency Statistics)
现在我想谈下这些性能相关的计数器,下周我们会详细谈下等待统计和I/O延迟统计信息。为SQL Server抓取相关的性能计数器非常简单:你使用微软提供的免费工具PAL。
PAL工具为SQL Server提供专门的模板,在模板里你可以找到针对SQL Server的所有相关的性能计数器。可以通过设定新的所谓的数据收集(Data Collection)来直接导入模板文件到Windows性能监视器。因此你可以在1分钟内就可以配置好SQL Server相关的性能计数器!
PAL工具另一个优点是:用它你可以自动分析Windows性能监视器抓取的.blg文件。作为输出,你会得到一个很大的HTML报表,告诉你在哪方面你可能有性能问题。下图来自这个报表的简单图例。

当我进行性能调优时,第一步总是配置Windows性能监控数据收集,然后我会对它分析好几个小时。专注于分析,把力气花在这上面是个非常好的想法。
小结
今天我们详细谈了针对可能的性能问题,你如何监控你的SQL Server。这里最重要的一点是你要建立一个基线的事实。有了基线,就很容易判断部署的修改是好还是坏。没有基线,你只能瞎猜修改是不是有用的,还是没用的。
在第2部分我们介绍了微软提供的免费工具PAL。使用PAL工具很容易在Windows性能监视器里配置一个数据收集,用来抓取SQL Server性能相关的计数器。另外你也可以用这个工具来自动分析抓取的性能计数器。下周我们会详细看下SQL Server里等待和I/O延迟统计信息。
请继续关注!
围观PPT:
第21/24周 性能监控(PAL工具)的更多相关文章
- Zynga 开源其服务器性能监控分析工具 zPerfmon
流年不利的社交游戏服务商Zynga近日在官方博客宣布开源zPerfmon——该工具负责监控Zynga数以千计的社交游戏服务器.zPerfmon的源代码目前已经上传至Github. 包括Facebook ...
- linux ---性能监控(工具)
linux服务器性能监控-nmon Nmon 是一个分析aix和linux性能的免费工具,出自IBM,其采集的数据通过nmon_analyser生成报表 一.下载 官网下载地址 百度网盘 二.运行和使 ...
- Windows性能监控perfmon工具的使用和性能指标的分析
Windows性能监控工具perfmon的使用和性能指标分析 一.perfmon提供图表化的实时的性能监视器.性能日志.警报管理,能监控CPU的使用率.内存使用率.磁盘I/O(磁盘的读写速度).网络I ...
- 【性能监控-Perfmon工具】Perfmon工具使用教程
一.Perfmon工具简介 Perfmon是一款Windows自带的性能监控工具,提供了图表化的系统性能实时监视器.性能日志和警报管理.通过添加性能计数器可以实现对CPU.内存.网络.磁盘.进程等多类 ...
- MiniProfiler性能监控分析工具在.NET项目中的使用
MiniProfiler是一款针对.NET, Ruby, Go and Node.js的性能分析的轻量级程序.可以对一个页面本身,及该页面通过直接引用.Ajax.Iframe形式访问的其它页面进行监控 ...
- 开源性能监控分析工具glowroot
最近在做java性能瓶颈定位分析工具的研究,发现glowroot工具是一款相当不错的APM工具(Wonderful tool),架构简洁,部署简单,上手容易. 经过亲身搭建体验,总结了产品的架构,工具 ...
- 【性能监控-Perfmon工具】手动添加数据收集器,点击保存时需要输入用户NT AUTHORITY\SYSTEM的密码问题
发现是有的电脑会弹出这种输入用户NT AUTHORITY\SYSTEM密码的现象,有的电脑不会弹出这个对话框.......仍然没搞懂是为什么? 关键是输入windows用户登录时的密码也不对!!压根不 ...
- Go pprof性能监控
Go net/http/pprof包提供了一个在WEB项目中使用的性能监控的工具, 使用时只需要引用包: _"net/http/pprof" 然后就可以在浏览器中访问地址: htt ...
- .Net Core 2.*+ InfluxDB+Grafana+App Metrics实时性能监控
前言 .net core 2.* 实施性能监控 这个工具其实给运维 大大们用起来是更爽的.但是Grafana现在还没有找到中文版. 本文需要了解的相关技术与内容: InfluxDb(分布式时序数据库, ...
随机推荐
- android知识杂记(一)
记录项目中用的零碎知识点,用以备忘. android:screenOrientation:portrait 限制横屏 activity启动状态 singleTop 只执行一次,通常用在欢迎页面 sin ...
- Java多线程14:生产者/消费者模型
什么是生产者/消费者模型 一种重要的模型,基于等待/通知机制.生产者/消费者模型描述的是有一块缓冲区作为仓库,生产者可将产品放入仓库,消费者可以从仓库中取出产品,生产者/消费者模型关注的是以下几个点: ...
- ECMAScript 6中的let和const关键词
ECMAScript 6中多了两个定义变量的关键词,一个是let,另一个是const,后者顾名思义就是常量定义,前者的作用域范围是块级的. 一般写过js的童鞋都知道,同其他语言一样,JS中的变量作用域 ...
- 来看看Windows9到底是什么
今天有新闻一直在说windows 8.2 windows9,还给出了一张很有趣的图 我们就假设这张图是真的. 这张图透漏出两个信息 其一:开始菜单真的回来了. 不过还是不死心,绝不放弃开始屏,确实,开 ...
- js模版引擎handlebars.js实用教程——if-判断的基本用法
返回目录 <!DOCTYPE html> <html> <head> <META http-equiv=Content-Type content=" ...
- Android按需添加Google Play服务
以前无论使用何种Google Play服务,都是直接在gradle文件中引用一个库. compile 'com.google.android.gms:play-services:9.4.0' 这直接导 ...
- html5 Web Workers
虽然在JavaScript中有setInterval和setTimeout函数使javaScript看起来好像使多线程执行,单实际上JavaScript使单线程的,一次只能做一件事情(关于JavaSc ...
- Java框架介绍-13个不容错过的框架项目
本文转自互联网,个人收藏所用. 下面,我们将一同分享各有趣且颇为实用的Java库,大家请任取所需.不用客气~ 1.极致精简的Java Bootique是一项用于构建无容器可运行Java应用的极简技术. ...
- Oracle数据库面试题【转载】
1. Oracle跟SQL Server 2005的区别? 宏观上: 1). 最大的区别在于平台,oracle可以运行在不同的平台上,sql server只能运行在windows平台上,由于windo ...
- OpenJDK将对Android开发产生怎样的影响?
转载于:http://www.itxuexiwang.com/a/liunxjishu/2016/0228/182.html?1456926201 Google已决定将从下一版本的Android开始采 ...