繁体   English   中英

SQL 服务器是否自动将 memory 分配给所有实例?

[英]Does SQL Server automatically allocate memory to all instances?

我的服务器机器上有一个 SQL 服务器实例,其中 80% 的 memory 保留给它。 这是在 SQL 服务器最大 memory 设置中配置的。

如果我创建一个额外的实例,它会使用保留的 memory,还是会尝试使用未分配的 10%?

简单来说就是SQL服务器实例所使用的预留memory是服务器实例特有的吗?

最大和最小服务器 Memory 不是保留。 它的工作方式与保留的 VmWare 不同。

启动时,实例仅使用最小数量的 memory - 它不会立即获取 Min Server Memory 数量。

In normal use, your instance will continue to use more memory as required until it reaches the Max Server Memory limit - but only if there is no external memory pressure signalled by Windows. 如果系统请求更多 memory,SQL 服务器将释放此,但如果它低于 Min 服务器 Memory 将不会释放。

因此,如果您要安装超过 1 个实例 - 您需要小心 Min Server Memory 并且不要将其设置得太高,以至于所有 Min Server Memory 数量的总和加上操作系统和其他程序所需的数量是多于可用的总物理 memory。 还要考虑一下 Max Server memory 的现实情况 - 随着一个实例的增加 memory 使用它可能会要求其他实例释放一些 memory 回来 - 可能会影响其他实例的性能。

您需要监控您的实例实际需要什么 - Page Life Expectancy 等计数器可以帮助您了解加载后页面在 memory 中停留的时间(即是否存在 memory 压力),这将帮助您确定降低 Max 的影响该实例的服务器 Memory。

每个数据库的性能特征都会影响您的配置。

话虽如此,在虚拟化的这些日子里——我倾向于避免每台服务器有多个实例,而只是为我的新实例启动另一个虚拟机。 这样我就可以更好地控制 memory 的实际物理保留 - 但如果我过度分配,我仍然需要注意像气球这样的操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM