第四章——SQLServer2008-2012资源及性能监控(1)

原文:第四章——SQLServer2008-2012资源及性能监控(1)

性能优化的第一步是发现问题,而发现问题通常又有两类:突发问题的侦测和常规问题的侦测,对于常规问题的侦测,通常需要有一个长效的性能监控作为依据。

本系列文章介绍

前言:

当由于劣质的查询写法、缺失必要的索引或者数据库级别的其他情况所导致的性能问题时,可以通过使用执行计划、DMVs/DMFs、SQL Trace或者数据库引擎顾问(DTA)这些手段来查找问题的根源。

但是,如果性能问题发生在硬件或者操作系统级别(如CPU/内存/IO/网络问题等),就要使用一些复杂的工具来协助你找到性能问题。因为这些进程运行在操作系统层面。

对于Windows server 2008R2、Windows 7这类新的操作系统,可以使用一个叫性能监视器(Performance Monitor),也叫可靠性和性能监视器(Reliability
and Perfomance Monitor)来实现更有效的监控。

在Windows中,有三个工具可以用来监控性能:

1、 
资源监视器(Resource Monitor)

2、 
性能监视器(Perfomance Monitor)

3、 
可靠性监视器(Reliability Monitor)

资源监视器提供一个快速、实时及图形化界面来显示包括CPU、内存、I/O和网络使用情况的信息,可以监视和检查所有当前运行在机器上的进程的这部分信息。并可以通过这个工具来结束你认为对性能有潜在风险的进程。

性能监视器提供实时性能监控的图形化界面工具,可以使用上百种性能计数器来跟踪性能数据。并把数据存放到文件中供进一步分析所用。

可靠性监视器同样提供图形化界面,通过计算系统一段时期内的稳定性索引,来分析系统的稳定程度。任何的问题都会降低这些系统稳定性索引。

这三种工具公用一个接口——微软管理控制台(MMC),可以合起来查看。可靠性和性能监视器合成了这三个工具的的所有功能。

在本系列文章中,将熟悉资源监视器、可靠性和性能监视器,并演示如何使用这些工具来检查和监控硬件资源的性能。

监视服务器性能

当用户反应SQLServer所在的服务器响应速度非常慢时,将优先使用什么工具来快速查看服务器性能?

在过去,可能会使用任务管理器来实现,但是在今天,可以使用更强大的工具来查看服务器资源。也就是资源监视器。

本文将给出一个如何使用资源监视器来监控硬件资源及服务器性能的快速入门。

准备工作:

1、 
开发版或者企业版的SQLServer2008、2012。

2、 
安装在Windows操作系统上的资源监视器。从Windows Server 2008R2或者Windows7以后才出现。

3、 
微软示例数据库AdventureWorks。

演示步骤:

1、 
打开资源监视器,方法:在【运行】中输入resmon.exe或者用快捷键Windows+R来输入。

2、 
通过下图可以看到资源监视器有5个选项页。第一个为概述页。可以查看服务器的整体性能。

3、 
如果想查看SQLServer服务所使用的CPU情况,可以点击第二个选项页【CPU】,并找到进程名为:sqlservr.exe的那一行。点击第一个窗口之后,下面的窗口会显示出相应的资源。如图:

4、 
如果想查看SQLServer使用的内存情况,可以使用步骤3中的方法,在第三个选项页【内存】中查看,如图:

5、 
如果要检查服务器上活动的磁盘I/O,可以选择选项页【磁盘】,因为在前面已经选择了sqlservr.exe进程,所以这个页面显示的将会是SQLServer服务所引起的I/O活动。可以连到SSMS中,输入以下脚本:

USE AdventureWorks
GO
SELECT  *
FROM    Sales.SalesOrderDetail WITH ( NOLOCK )
GO

6、 
马上切换回资源监视器。将会看到有I/O操作作用于AdventureWorks数据库文件上,如图:

分析:

本文中直观地展示了资源监视器的使用,资源监视器提供了CPU、内存、磁盘IO、网络方面的资源使用情况信息,它分成5个部分来展示相关信息:

1、 概述:提供了其他4个选项页中包含的服务器资源信息。当你发现产生性能问题的进程后,可以从这里结束掉。

2、CPU:这个选项页提供CPU使用的百分比信息,也显示在概述页中显示的每个进程的详细CPU信息。并可以看到对应进程的服务、关联句柄及关联模块。在右边,还能看到试试的图形化的所有可用CPU的实时情况。如果你找到CPU使用率非常高,就应该检查是什么使用着这些CPU资源。

3、内存:这个选项页显示内存使用情况。可以找到系统有多少内存、多少内存已经在使用、多少内存空闲。还提供了每个进程的内存消耗情况。资源监视器的最大优势是可以通过勾选特定进程来获取相应的资源信息。

4、磁盘:这个选项页是显示各个进程对应的磁盘I/O活动,通过Read(B/Sec)和Write(B/Sec)列,可以看到特定进程的IO情况。同时也可以看到某些文件上的IO活动。右边显示当前IO的实时情况。

5、 网络:显示出当前网络使用情况。可以看到所有TCP连接所对应的不同的进程,也可以筛选特定进程。

扩展信息:

通过使用资源监视器,可以快速定位消耗硬件资源的进程。同时可以查看网络方面的瓶颈。在SQLServer生产环境中,如果你发现某些进程、应用程序耗费的资源比SQLServer还多,并已经影响到SQLServer的性能,你可以考虑把这些经常或者应用程序移到别的服务器,以使得SQLServer的性能不会收到太大的影响。

时间: 2024-08-29 20:57:01

第四章——SQLServer2008-2012资源及性能监控(1)的相关文章

第四章——SQLServer2008-2012资源及性能监控(3)

原文:第四章--SQLServer2008-2012资源及性能监控(3) 本文为本系列最后一章,监控内存使用.监控服务器的内存是非常重要的事情,有很多情况会引起内存消耗.所以要经常性地做检查. 本文将使用可靠性和性能监视器来获取内存相关的统计. 准备工作: 在开始之前,先来了解一下将要用到的计数器: ?  Memory: Available Mbytes:提供系统上可用内存的数量. ?  Memory: Pages/sec:显示有多少页被用于读或写入硬盘,这些基于硬页面错误. ?  Paging

第四章——SQLServer2008-2012资源及性能监控(2) .

原文:第四章--SQLServer2008-2012资源及性能监控(2) . 本文接着上文继续,讲述如何监控CPU的使用情况 前言: CPU是服务器中最重要的资源.在数据库服务器中,CPU的使用情况应该时刻监控以便SQLServer一直处于最佳状态. 本文将会使用可靠性和性能监视器来获取CPU相关的使用统计信息 可靠性和性能监视器是过去性能监视器工具的加强版.同时拥有性能监视器的全部功能. 性能计数器提供对各种系统活动的统计功能.可以找到有数百种性能计数器来针对Windows操作系统或者第三方应

SQLServer2008-2012资源及性能监控—CPU使用率监控详解

 本文接着上文继续,讲述如何监控CPU的使用情况 前言: CPU是服务器中最重要的资源.在数据库服务器中,CPU的使用情况应该时刻监控以便SQLServer一直处于最佳状态. 本文将会使用可靠性和性能监视器来获取CPU相关的使用统计信息 可靠性和性能监视器是过去性能监视器工具的加强版.同时拥有性能监视器的全部功能. 性能计数器提供对各种系统活动的统计功能.可以找到有数百种性能计数器来针对Windows操作系统或者第三方应用程序的性能.SQLServer同样有数百个性能计数器供DBA使用. 在

SQLServer2008-2012资源及性能监控—CPU使用率监控具体解释

前言: CPU是server中最重要的资源.在数据库server中,CPU的使用情况应该时刻监控以便SQLServer一直处于最佳状态. 本文将会使用可靠性和性能监视器来获取CPU相关的使用统计信息 可靠性和性能监视器是过去性能监视器工具的加强版.同一时候拥有性能监视器的所有功能. 性能计数器提供对各种系统活动的统计功能.能够找到有数百种性能计数器来针对Windows操作系统或者第三方应用程序的性能.SQLServer相同有数百个性能计数器供DBA使用. 在本文中,我们将跟踪下列相关CPU性能计

第四部分 性能篇 第十一章 MongoDB 性能监控

声明:该文章主要来自<MongoDB实战>一书内容,主要想通过该书学习MongoDB的相应知识,加深理解,故写在自己的博文当中,作为记录在最后的章节中,会有一个自己集合MongoDB数据库应用的JavaEE的web应用. 1.MongoStat 此工具可以快速的查看某组运行中的MongoDB实例的统计信息,用法如下: [[email protected] bin]# ./mongostat connected to: 127.0.0.1 insert query update delete g

《互联网+医疗:重构医疗生态》,第四章介绍美国的医药福利管理制度与企业,值得看看,其他章节一般。总体二星。

各章相对独立,是不同的作者. 第四章介绍美国的医疗福利管理的制度与公司,值得看一看.这一章我给三星.其他章节二星,信息以互联网上能查到的信息为主. 以下是书中一些相对有用的信息的摘抄: 1:但是,“互联网+医疗”企业有一个最大的痛点,就是害怕触碰法律“红线”.目前,所有相关企业都宣称“咨询”或“轻问诊”,绝不说是“看病”,更不敢开处方.#314 2:患者的隐私安全在整个在线问诊的服务流程中也是非常重要的.#372 3:相比美国的私人医生模式,中国的私人医生主要还是停留在为居民提供个性化医疗健康管

《Linux内核设计与实现》第四章学习笔记

第四章 进程调度 [学习时间:1小时45分 撰写博客时间:2小时10分钟] [学习内容:Linux的进程调度实现.抢占和上下文切换.与调度相关的系统调用] 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间.进程调度程序可看做在可运行态进程之间分配有限的处理器时间资源的内核子系统. 最大限度利用处理器时间的原则:只要有可以执行的进程,那么总会有程序正在执行. 一.多任务 1.概念:多任务操作系统就是能同时并发地交互执行多个进程的操作系统,在单处理器机器上这会产生多个进程在同时运行的幻觉

《Linux内核设计与实现》读书笔记 第四章 进程调度

第四章进程调度 进程调度程序可看做在可运行太进程之间分配有限的处理器时间资源的内核子系统.调度程序是多任务操作系统的基础.通过调度程序的合理调度,系统资源才能最大限度地发挥作用,多进程才会有并发执行的效果. 最大限度地利用处理器时间的原则是,只要有可以执行的进程,那么总会有进程在执行. 4.1多任务 多任务操作系统就是能同时并发地交互执行多个进程的操作系统.多任务能使多个进程处于堵塞或者睡眠状态.就是任务位于内存内但是不被执行,直到某一事件发生. 分类: l  非抢占式:除非进程自己主动停止运行

第四章:4.2MySQL 权限系统介绍

4.2.1 权限系统简介 MySQL 的权限系统在实现上比较简单,相关权限信息主要存储在几个被称为granttables 的系统表中,即: mysql.User,mysql.db,mysql.Host,mysql.table_priv 和mysql.column_priv.由于权限信息数据量比较小,而且访问又非常频繁,所以Mysql 在启动的时候,就会将所有的权限信息都Load 到内存中保存在几个特定的结构中.所以才有我们每次手工修改了权限相关的表之后,都需要执行"FLUSH PRIVILEGE