我max_server_memory
在生产 SQL Server 上将设置配置为 141 GB,目标/总服务器内存为 144 GB。
我认为max_server_memory
代表了我愿意让 SQL Server 引擎使用多少内存,如果是这样,为什么它使用的不止于此?
运行 SQL Server 2012 SP3,安装了 160 GB 内存的物理机,盒子上没有运行其他实例,但我们也在运行 Integration Services。
我们有 75 个用户数据库,总大小为 928 GB。我不确定是否正在使用 columnstore,或者我该如何检查。这是一个供应商应用程序。
现在目标内存 = 144,384,008,总内存 = 144,378,261。
该实例自昨晚 2019-05-01 22:20:21.097 EST 以来一直在运行。我们进行了一些基础设施维护,需要停止实例。然而,我已经注意到很长一段时间了,总/目标总是在 144,而最大值总是设置为 141。周一至周五主要工作时间的 PLE 平均约为 0.5 到 1 小时,有时会跳到 2 小时.
max server memory 设置并不代表你愿意让SQL 引擎使用多少内存。来自内存管理架构指南:
您是否转换了以 GB 为单位的总内存和目标服务器内存,以查看以 GB 为单位的实际值是多少。由于您将它与设置为 141 GB 的最大服务器内存进行比较,因此您必须转换以 GB 为单位的值以查看它们是否真的大于最大服务器内存。
如果您将总内存和目标服务器内存都转换为 GB,它会
在这两种情况下,总内存和目标服务器内存都小于最大服务器内存。我同意乔引用的内容并进一步补充
因此,总的 SQL Server 内存消耗可能会超出最大服务器内存中设置的限制。
有两件事
要获得上面,你只需要在下面运行