大家好,欢迎来到性能调优培训的最后一个月。在过去的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健康状态的大致情况。

  1. 一些特定的SQL Server性能相关的计数器
  2. 等待统计(Wait Statistics)
  3. 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:

1117_21_PAL_Tools.rar

第21/24周 性能监控(PAL工具)的更多相关文章

  1. Zynga 开源其服务器性能监控分析工具 zPerfmon

    流年不利的社交游戏服务商Zynga近日在官方博客宣布开源zPerfmon——该工具负责监控Zynga数以千计的社交游戏服务器.zPerfmon的源代码目前已经上传至Github. 包括Facebook ...

  2. linux ---性能监控(工具)

    linux服务器性能监控-nmon Nmon 是一个分析aix和linux性能的免费工具,出自IBM,其采集的数据通过nmon_analyser生成报表 一.下载 官网下载地址 百度网盘 二.运行和使 ...

  3. Windows性能监控perfmon工具的使用和性能指标的分析

    Windows性能监控工具perfmon的使用和性能指标分析 一.perfmon提供图表化的实时的性能监视器.性能日志.警报管理,能监控CPU的使用率.内存使用率.磁盘I/O(磁盘的读写速度).网络I ...

  4. 【性能监控-Perfmon工具】Perfmon工具使用教程

    一.Perfmon工具简介 Perfmon是一款Windows自带的性能监控工具,提供了图表化的系统性能实时监视器.性能日志和警报管理.通过添加性能计数器可以实现对CPU.内存.网络.磁盘.进程等多类 ...

  5. MiniProfiler性能监控分析工具在.NET项目中的使用

    MiniProfiler是一款针对.NET, Ruby, Go and Node.js的性能分析的轻量级程序.可以对一个页面本身,及该页面通过直接引用.Ajax.Iframe形式访问的其它页面进行监控 ...

  6. 开源性能监控分析工具glowroot

    最近在做java性能瓶颈定位分析工具的研究,发现glowroot工具是一款相当不错的APM工具(Wonderful tool),架构简洁,部署简单,上手容易. 经过亲身搭建体验,总结了产品的架构,工具 ...

  7. 【性能监控-Perfmon工具】手动添加数据收集器,点击保存时需要输入用户NT AUTHORITY\SYSTEM的密码问题

    发现是有的电脑会弹出这种输入用户NT AUTHORITY\SYSTEM密码的现象,有的电脑不会弹出这个对话框.......仍然没搞懂是为什么? 关键是输入windows用户登录时的密码也不对!!压根不 ...

  8. Go pprof性能监控

    Go net/http/pprof包提供了一个在WEB项目中使用的性能监控的工具, 使用时只需要引用包: _"net/http/pprof" 然后就可以在浏览器中访问地址: htt ...

  9. .Net Core 2.*+ InfluxDB+Grafana+App Metrics实时性能监控

    前言 .net core 2.* 实施性能监控 这个工具其实给运维 大大们用起来是更爽的.但是Grafana现在还没有找到中文版. 本文需要了解的相关技术与内容: InfluxDb(分布式时序数据库, ...

随机推荐

  1. [ASE][Daily Scrum]11.30

    燃烧图的页面进不去了…… 小结一下吧,sprint2的内容已经基本完成了, 推迟到之后进行的任务: ·地图块的刷新 一些bug尚未修复不过不是特别重要所以也推到后面了, 之后两个sprint主要会增加 ...

  2. [MySQL][Spider][VP]Spider-3.1 VP-1.0 发布

    我很高兴的宣布 Spider 存储引擎 3.1 Beta 版本和垂直分区存储引擎 1.0 Beta 版本发布了. Spider 是数据库拆分的存储引擎: http://spiderformysql.c ...

  3. EF 外键问题

    在做一个评论功能的时候,发现用户的id不对,打开数据库一看,莫名其妙的新增了几个用户.明显是将外键中的用户新增到用户表中了. 评论表: public class CourseComment : Bas ...

  4. Angular实现递归指令 - Tree View

    在层次数据结构展示中,树是一种极其常见的展现方式.比如系统中目录结构.企业组织结构.电子商务产品分类都是常见的树形结构数据. 这里我们采用Angular的方式来实现这类常见的tree view结构. ...

  5. 测试博文中添加可执行JS代码

    昨天申请开通了博客园的JS权限,今天来看看效果. 测试执行JS 测试执行JS // 运行

  6. IOS 公共类-MyMBProgressUtil Progress显示

    IOS 公共类-MyMBProgressUtil Progress显示 此公共类用于显示提示框,对MBProgress的进一步封装.可以看下面的代码 接口: @interface MyMBProgre ...

  7. 腾讯Ubuntu云虚拟主机设置ftp服务器

    刚申请了免费的腾讯云主机, 发现还要想办法自己的服务器代码传到云主机上 在网上搜了很多方法介绍, 照着设置完后都无法正常连接 最后半夜尿醒来睡不着找到一篇站内文章, 提到必须注释掉一行代码 这个是其他 ...

  8. EF架构~充血模型设置不被持久化的属性

    回到目录 在Poco实体中,一般只有属性没有方法,这在软件设计中称为贫血模型,而在DDD领域驱动设计中,比较提倡充血模型,即你的Poco实体中,即有属性,也有操作属性的方法,注意这里说的是操作属性的方 ...

  9. [Spring框架] Spring中的 ContextLoaderListener 实现原理.

    前言: 这是关于Spring的第三篇文章, 打算后续还会写入AOP 和Spring 事务管理相关的文章, 这么好的两个周末 都在看code了, 确实是有所收获, 现在就来记录一下. 在上一篇讲解Spr ...

  10. DOM (Document Object Model)文档对象模型

    [理解下DOM] DOM——Document Object Mode.DOM是网页上XHTML中文档正文标题啊.段落.列表.样式.以及ID/class等所有其他数据的一个内部表示.我自己的理解是将网页 ...