16GB 机器上的 64 位 SQL Server 2005 仅使用 3.6GB 内存

16GB 机器上的 64 位 SQL Server 2005 仅使用 3.6GB 内存
  • 最大服务器内存设置为maxvalue
  • AWE 已禁用(64 位系统中不需要)
  • Windows Server 2008 企业版 SP2
  • 它是使用 VMWare 的虚拟服务器

如果我查看任务管理器,sqlservr.exe 进程仅使用大约 3.6 GB 的内存。这个数字不是真实的吗?它不应该尝试使用所有可用内存吗?

如果我运行 DBCC MEMORYSTATUS 我会得到:

VM Reserved 16670136
VM Committed    3640664

这看起来像是一个我不应该在 64 位环境中看到的内存限制。我怎样才能让 SQL2005 使用更多的内存?

答案1

不会。如果您重新启动 SQL 服务器服务,内存将会返回给操作系统。此设置的意思是,一旦 SQL 服务器消耗的内存达到 12 GB,SQL 服务器就会保留这些内存。即使现在您不需要数据并且事务已完成,这些内存仍会保留在 SQL 服务器中。因此,一旦 SQL 服务器消耗的内存达到 12 GB,它将永远保留这些内存,直到您重新启动服务为止。

答案2

您是否设置了最小服务器内存?

http://msdn.microsoft.com/en-us/library/ms178067.aspx

如果将最小服务器内存和最大服务器内存设置为相同的值,SQL Server 将把该数量的内存(如果可用)分配给缓冲池。当然,您实际上并不想允许 SQL Server 使用全部服务器上的内存 - 您需要为操作系统保留至少一部分内存(数量取决于您是否在同一台机器上运行其他任何东西)。

嗨嗨。

答案3

您可以在 PerfMon 中查看目标服务器内存,以了解 SQL 服务器请求了多少内存。稍微离题一点,您可以比较总服务器内存和目标服务器内存,以查看是否存在内存限制。当目标大于总内存时,您需要添加更多内存。

相关内容