什么原因导致 SQL Server 的最大内存设置随着时间的推移而发生变化?

什么原因导致 SQL Server 的最大内存设置随着时间的推移而发生变化?

我开始在 Excel 中分析我们的 SQL Server PerfMon 日志,并发现了这一点。

图例:
红色 - SQL Server - 目标服务器内存
绿色 - SQL Server - 总服务器内存
蓝色 - 可用系统内存

服务器 1:

服务器2:

服务器 3:

之前有其他人见过这种情况吗?我们应该担心吗?

所有服务器的配置都相同,除了最大内存设置外——服务器 1 和 2 上为 14GB,服务器 3 上为 10GB。所有服务器上的最小内存均为零。这些是 SQL Server 2008 R2 实例,每个实例都在自己的 VM 中运行 Hyper-V 下的 Windows Server 2008 R2(SP1 于本月中旬应用)。

我会预计是看到类似服务器 1 的图表(水平红线),但对于服务器 2 和 3,报告的目标服务器内存值如何随时间波动?从我展示的图表中看不到的是,波动与可用内存指标有些匹配。此外,服务器重启(蓝色垂直线)似乎也不会影响这些值。这是 PerfMon 中的错误吗?

PerfMon 的设置使得所有 3 台服务器都位于单个数据收集器集内,每台服务器都有自己的性能计数器,其中包含我们正在跟踪的所有参数。

任何帮助或见解都将不胜感激。

答案1

听起来你对目标服务器内存感到困惑,并假设它是一个静态值。目标服务器内存是 SQL Server 计划使用的内存上限(请注意,在文档中,术语是“可以消耗”而不是“可用”。这是一个动态数字,在内存压力期间,它将减少目标服务器内存,然后减少(或增加)总服务器内存,直到达到目标。从这张图显示的内容来看,我预计还有其他因素对其他 2 个 SQL 服务器造成内存压力

答案2

根据您目前分享的信息,我认为没有任何问题。您需要问的是所有这些服务器上的活动是否相同?您如何衡量?如果您的总数和目标不同,并且总数 < 目标,则意味着您有更多的余量。您可能还想查看其他指标,如 PLE、缓冲区缓存命中率等...并且永远不要只依赖一个指标。

您是否发现这些服务器存在任何性能问题?您是否检查过这些框上的等待统计信息?您是否查看过虚拟文件统计信息等...我的理论是,您应该在一段时间内监控这些指标,看看它们是呈上升趋势还是下降趋势,而不要担心特定小间隔内的数字。

高血压

相关内容