几个月来,我们其中一台服务器上的 PLE 一直徘徊在 200 万秒左右。如果每天略有变化,但在那里非常稳定。
上周末,我们向服务器添加了 12 GB 的虚拟 RAM 和 1 个虚拟 CPU 内核。我们没有更改 SQL Server 中的最大使用 RAM 以匹配新的 RAM,也没有为 SQL Server 分配新的 CPU 内核。
自此完成后,我们的 PLE 波动很大,每 10-30 分钟波动 50 到 400 万秒。这些变化不是缓慢的上升或下降。指标在不到一分钟的时间内从非常低直接变为非常高,反之亦然。
我们对服务器的总体等待时间很好。闩锁是正常的。缓冲区和计划缓存大小没有改变。似乎没有任何一致的特定查询模式或耗尽资源的查询类型。
我以前从未见过 PLE 这样做过。有人可以指出我可能遗漏或需要更深入研究的内容吗?
来自评论的附加信息:
- 我们总共有 5 个 CPU,但只使用了 3 个(我们在 4 个时使用了 3 个)。
- 我们的总内存是 49GB,SQL 的最大值是 28GB。
- 我们在 x64 操作系统 (Windows 2008) 上使用 VMWare。
- 服务器上有 14 个用户数据库,主数据库大约 250GB。
- 自这一切开始以来,缓冲区缓存命中率一直保持在 98+% 左右。
- 服务器电源计划设置为平衡(非高性能);然而,这几年没有改变。话虽如此,我完全同意它应该是高性能的。
- SQL Server 错误和 Windows 事件日志都没有显示任何异常。
- 服务器上的活动在过去几周内没有变化。
- 服务器是 NUMA 感知的。是
MAXDOP
4,成本阈值为 10。
我们将内存从 28GB(原始数量)增加到 40GB,为操作系统和其他进程留出 8GB 内存。紧接着一切恢复正常并保持稳定。我们的一位 DBA 推测 SQL Server 对它真正有多少内存感到困惑。我之前和之后都检查了总服务器内存,数字与我在服务器属性中看到的一致,但我发现这个断言很难反驳