第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(分布式时序数据库, ...
随机推荐
- innodb buffer pool相关特性
背景 innodb buffer pool作为innodb最重要的缓存,其缓存命中率的高低会直接影响数据库的性能.因此在数据库发生变更,比如重启.主备切换实例迁移等等,innodb buffer po ...
- .NET开发的大型网站列表、各大公司.NET职位精选,C#王者归来
简洁.优雅.高效的C#语言,神一样的C#创始人Anders Hejlsberg,async/await编译器级异步语法,N年前就有的lambda表达式,.NET Native媲美C++的原生编译性能, ...
- android oauth 微博客户端 架构一
最近研究oauth协议,为了进一步 的巩固自己的学习成果,顾完成了android的新浪客户端.他的架构如下: UI层微博中的各个窗体 就是所谓的各个activitylogic层程序的核心控制调度模块 ...
- How and Where Concurrent Asynchronous I/O with ASP.NET Web API 对异步编程分析的非常的好
How and Where Concurrent Asynchronous I/O with ASP.NET Web API http://www.tugberkugurlu.com/archive/ ...
- RCP:eclipse的DEBUG机制
Eclipse debug文档翻译 运行一个程序需要添加launch configurable,在自定义launch configuration的时候会指定模式,比如run,debug,profile ...
- Unity3D热更新全书FAQ
只要有程序员朋友们问过两次的问题 就会收录在此FAQ中 1.C#Light对比LUA有什么好处 C#Light是静态类型脚本语言,语法同C#,Lua是动态类型脚本语言,这两种都有人喜欢. 我更喜欢静态 ...
- 继续SecureString
上回写了关于SecureString的特征和为什么我们要使用它,这篇继续研究研究这个SecureString. **主要内容:** - SecureString与String之间的转换 - Secur ...
- 用python语言讲解数据结构与算法
写在前面的话:关于数据结构与算法讲解的书籍很多,但是用python语言去实现的不是很多,最近有幸看到一本这样的书籍,由Brad Miller and David Ranum编写的<Problem ...
- ASP.NET Core: 全新的ASP.NET !
背景 最新版本的 ASP.NET 叫做 ASP.NET Core (也被称为 ASP.NET 5) 它颠覆了过去的 ASP.NET. 什么是 ASP.NET Core? ASP.NET Core ...
- ASP.NET集成模式下的管道事件