在 SQL Server 上可监控什么(第 1 部分)文章中,我们回顾了要监空的四个主要性能指标类别中的两个,即磁盘活动和处理器利用率,以便衡量 SQL Server 的效率。本篇文章将涵盖其余两个类别:内存和服务器操作。
内存
内存使用率监视尝试确定数据库服务器在处理请求时使用的内存量。你应该定期监视 SQL Server 实例,以确认内存使用率是否在典型范围内。
默认情况下,SQL Server 会动态增大和缩小其缓冲池(缓存)的大小,具体取决于操作系统报告的物理内存负载。只要有足够的内存(4 MB 到 10 MB之间)可用于防止分页,SQL Server 缓冲池将继续增长。由于 SQL Server 与在同一台电脑上的其他进程分配内存一样,SQL Server Buffer Manager 将根据需要释放内存。SQL Server 可以每秒释放和获取数兆字节的内存。这允许 SQL Server 快速调整内存分配的更改。
SQL Server 使用对象和计数器工作,每个对象包含一个或多个计数器。例如,Buffer Manager 对象提供计数器来监视 SQL Server 如何使用内存来存储数据页和缓冲池。
若要监视内存不足的情况,请使用以下计数器:
Available MBs:指示有多少内存可供新的进程使用。如果可用内存持续不足且无法减少服务器负载,则需要添加更多 RAM。
Pages/sec:此计数器指示访问虚拟内存的次数。根据经验,它应该低于 20。数字高表示分页过多。使用 Memory: Page Faults/sec 可以进一步指示是 SQL Server 或其他进程导致它。
你还可以使用“max server memory”和“min server memory”配置选项为 SQL Server 数据库引擎使用多少内存建立上限和下限。
其他与服务器相关的指标
虽然磁盘活动、处理器使用率和内存是最重要的监视区域,但还有一些其他常规服务器指标值得检查。
Access Methods – Full scans/sec:数字高(大于 1 或 2)可能表示你没有使用索引而使用表扫描。
Buffer Manager – Buffer Cache hit ratio:这是由数据缓存提供服务的请求的百分比。当正确使用缓存时,这应该超过 90%。可以通过添加更多 RAM 来改进计数器。
Memory Manager – Target Server Memory (KB):指示 SQL Server“想要”的内存量。如果这与 Memory Manager – Total Server Memory (KB) 计数器(见下文)相同,那么你就知道 SQL Server 具有所需的全部内存。
Memory Manager – Total Server Memory (KB):SQL Server 实际已使用的内存量。如果小于 Memory Manager – Target Server Memory (KB),那么 SQL Server 可以从更多的内存中受益。
Locks – Average Wait Time:此计数器显示获取锁定所需的平均时间。这个值需要尽可能低。如果异常高,你可能需要查找阻塞的进程。你可能还需要检查用户的 SQL 语句,并检查是否存在任何其他 I/O 瓶颈。
尽管这些指标非常有用,但 SQL Server 提供了许多其他可能派上用场的指标。我们将会在未来的文章中研究其他指标。