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

简介: 原文: 第四章——SQLServer2008-2012资源及性能监控(3) 本文为本系列最后一章,监控内存使用。监控服务器的内存是非常重要的事情,有很多情况会引起内存消耗。
原文: 第四章——SQLServer2008-2012资源及性能监控(3)

本文为本系列最后一章,监控内存使用。监控服务器的内存是非常重要的事情,有很多情况会引起内存消耗。所以要经常性地做检查。

本文将使用可靠性和性能监视器来获取内存相关的统计。

 

准备工作:

在开始之前,先来了解一下将要用到的计数器:

Ø  Memory: Available Mbytes:提供系统上可用内存的数量。

Ø  Memory: Pages/sec:显示有多少页被用于读或写入硬盘,这些基于硬页面错误。

Ø  Paging File:%Usage:显示挂起的总数的百分比。

Ø  SQL Server: Buffer Manager: Buffer cache hit ratio:返回SQLServer从缓存但不是从硬盘返回的数据的百分比。

Ø  SQL Server: Buffer Manager: Page life expectancy:显示数据驻留在内存的平均秒数

Ø  SQL Server: Buffer Manager: Memory Grants Pending:等待内存工作区授予的进程数

 

步骤:

1、  打开可靠性和性能监视器,在【运行】中输入perfmon.exe

2、  选择性能监视器。

3、  去除所有已存在的计数器。

4、  添加新计数器。

5、  选择所要监视的服务器。

6、  选择下面的计数器:

 Memory: Available Mbytes
 Memory: Pages/sec
 Paging File:%Usage
 SQL Server: Buffer Manager: Buffer cache hit
 SQL Server: Buffer Manager: Page life expectancy
 SQL Server: Memory Manager: Memory Grants Pending

7、  然后点击确定。

上面这些步骤已经在前一章说明了。这里就不累赘了。

 

分析:

       在本文中,再次使用了可靠性和性能监视器这个工具。为了获取内存相关的性能计数器,需要在图形化界面中观察这些计数器。

    首先先检查Memory: Available Mbytes,这个值意味着系统的可用内存。如果发现这个值经常很低,可能表示服务器内存不足,在生产数据库中,这个值可以使用GB为单位。

    然后检查Memory: Pages/sec ,以为这因为硬页面错误导致的从磁盘读或写页面。这个值如果长期高于20,意味着内存不足使得应用程序使用虚拟内存,从而导致挂起。

    接着是Memory: pages/sec ,同时也要检查Paging File:%Usage去预估内存挂起。如果这个值经常超过20%,可能意味着内存不足。

    SQL Server: Buffer Manager: Buffer cache hit ratio:意味着数据从缓存中读取的次数,比较合理的值为大于90%。如果该值很低,可能内存不足或者需要检查索引和查询。如果你需要获得大量数据,这一步可能就会占用大量内存然后引起SQLServer从磁盘读数据而不是从内存。检查索引,确保在大表中能尽可能笔描扫描。并尽可能限制查询返回的结果行。

    检查SQL Server: Buffer Manager: Page life expectancy,表示数据页驻留在内存的秒数。微软建议最少300秒。如果在一个实例中经常低于300秒,意味着数据保留的时间少于5分钟就被移出内存。

    如果SQL Server: Memory Manager: Memory Grants Pending经常建议等待进程,你可能需要增加服务器的内存了。

    不管什么原因,如果你发现内存不足和挂起发生得比较频繁,你首先应该检查是否有非SQL Server的其他应用或者服务耗费了比SQL Server更加多的内存。如果你发现这些应用或者服务,尝试移到别的服务器。如果做不到,那么需要增加更多的内存,以供SQLServer使用。

    如果服务器仅仅工SQL Server使用且没有上面说的情况,那么要分析你的查询和索引,以确保他们是最优化的。如果已经优化好,还是存在这些问题,那么才需要考虑增加内存。

    除了可靠性和性能监视器,还可以使用SQL Server Profiler来监控性能,创建一个用户自定义收集器并存为文件,当你从性能监视器中获取性能数据时,SQL Server Profiler会同步运行。一旦你完成收集,可以把性能数据导入到SQLServer Profiler中供任何时候分析。

目录
相关文章
|
Prometheus 监控 Cloud Native
如何使用Prometheus监控Docker Swarm集群的资源使用情况?
还可以根据实际需求进行进一步的配置和优化,如设置告警规则,当资源使用超出阈值时及时发出警报。通过这些步骤,能够有效地使用 Prometheus 对 Docker Swarm 集群的资源进行监控和管理。
654 161
|
Kubernetes 监控 Cloud Native
"解锁K8s新姿势!Cobra+Client-go强强联手,打造你的专属K8s监控神器,让资源优化与性能监控尽在掌握!"
【8月更文挑战第14天】在云原生领域,Kubernetes以出色的扩展性和定制化能力引领潮流。面对独特需求,自定义插件成为必要。本文通过Cobra与Client-go两大利器,打造一款监测特定标签Pods资源使用的K8s插件。Cobra简化CLI开发,Client-go则负责与K8s API交互。从初始化项目到实现查询逻辑,一步步引导你构建个性化工具,开启K8s集群智能化管理之旅。
267 2
|
Prometheus 监控 Cloud Native
Prometheus监控平台配置--监控集群资源信息
在scrape_configs 配置项下添加Linux 监控的job,其中 IP 修改为上面部署node_exporter机器的ip,端口号为9100,需要注意缩进。
429 6
|
Prometheus 监控 Kubernetes
体验托管Prometheus监控阿里云容器服务Kubernetes的GPU资源
通过ARMS管理Kubernetes集群GPU性能指标 在阿里云容器服务中使用GPU资源运行进行AI模型训练和预测时,经常需要了解应用负载的GPU的使用情况,比如每块显存使用情况、GPU利用率,GPU卡温度等监控信息,通过内置ARMS可以从应用的维度去观测GPU的使用情况,了解资源水位,以及设定相应的报警,避免因为GPU资源的约束引发业务风险。
1695 0
体验托管Prometheus监控阿里云容器服务Kubernetes的GPU资源
|
监控 数据库 索引
SQLSERVER性能监控级别步骤
原文:SQLSERVER性能监控级别步骤 SQLSERVER性能监控级别步骤 下面先用一幅图描述一下有哪些步骤和顺序 1、识别瓶颈 识别瓶颈的原因包括多个方面,例如,资源不足,需要添加或升级硬件; 工作负荷在同类资源之间分布不均匀,例如,一个磁盘被独占;资源发生故障;资源配置不正确等 ...
3419 0
|
监控 数据库 索引
第四章——SQLServer2008-2012资源及性能监控(1)
原文: 第四章——SQLServer2008-2012资源及性能监控(1) 性能优化的第一步是发现问题,而发现问题通常又有两类:突发问题的侦测和常规问题的侦测,对于常规问题的侦测,通常需要有一个长效的性能监控作为依据。
1387 0