Microsoft SQL Server 2008 内存

Bri*_*rby 4 memory sql-server-2008-r2 configuration

我正在运行 MSSQL 2008 Enterprise,在服务器配置中,最大内存量设置为 2147483647 MB​​。

我的问题是,服务器有 192 GB 的内存,配置中的数字不能增加,如果配置设置为那个,这是否意味着服务器可以使用它需要的任何东西?或者我如何启用服务器使用所有可用的内存。

如果我打开任务管理器,内存使用量永远不会超过 19 GB。

感谢您的帮助

Pau*_*ite 5

知道这是 64 位 SQL Server 2008 Enterprise 简化了讨论,所以谢谢你。首先要说的是,将最大服务器内存配置选项保留为默认值 2147483647几乎永远不会正确。

max server memory选项仅限制缓冲池的大小(用于 2012 年之前的所有单 8KB 分配)。SQL Server 还可能需要大量的非缓冲池内存(分配 > 8KB)。其他实例、应用程序和操作系统也需要工作空间(2GB 并不总是一个好的经验法则)。Amit Banerjee 是 Microsoft PSS 的升级工程师,在此主题上发表三篇出色的文章,我鼓励您阅读这些文章。

您通常希望设置max server memory一个相当保守的最大值作为开始,在整个负载周期内监控服务器上的实际可用内存量,最好是在一段相当长的时间内,并在适当和必要时逐渐增加它。

开始的确切级别取决于 SQL Server 可能需要多少非缓冲池内存,以及其他实例、应用程序和操作系统将需要多少内存。在专用于单个 SQL Server 实例的服务器上,我可能会在安装了 192GB 的情况下启动大约 160GB 的最大服务器内存。您的情况可能要求指示一个低得多的起点。

我还建议您考虑使用Lock Pages in Memory (LPIM) 选项(该链接详细解释了原因)。如果 SQL Server 服务作为LocalSystem运行(这不是最佳做法),则默认情况下会启用此功能。有关详细信息,包括如何判断 SQL Server 当前是否正在使用 LPIM,请参阅此CSS 文章

通过此机制使用的内存对任务管理器不可见;最好通过Performance Monitor counetrs 和/或sys.dm_os_sys_memory DMV监视 SQL Server 内存使用情况。