查看 SQL 的缓存 RAM 使用情况?

查看 SQL 的缓存 RAM 使用情况?

我希望这有一个非常简单的解决方案,但我感觉不会。我在其他任何地方都找不到有关此问题的任何信息,这不是一个好的开始!

基本上我们正在运行SQL 服务器 2008Windows Server 2008 R2机器16GB 内存

问题是我们的 RAM 使用量不断攀升至 15.6GB 并给我们带来了问题,我想知道这是否可能是 SQL 的缓存。

我们现在已将 SQL 配置为使用最小/最大 13GB,但我仍然担心可能是其他东西占用了 RAM,因此在我重置服务器并清除使用它的内容之前,我想尝试看看这是否是 SQL 造成的。

我如何才能查看 SQL 的缓存 RAM 使用量?它只是任务管理器中的数字吗?

谢谢你的帮助。

答案1

性能监视器

首先查看进程对象类型。它为系统上的每个进程都有一个实例,并包含虚拟字节、虚拟字节峰值、工作集和工作集峰值等指标。SQL Server 的实例将以进程名称“sqlservr”命名。查看所有实例,您可以快速查看哪个进程导致最多的内存消耗。

接下来看看 SQL Server 自己的计数器。在 SQL Server:缓冲区管理器对象中,您将找到 SQL Server 自己的计数器。您需要查看 Total Pages 计数器,该计数器统计 SQL Server 内部跟踪的所有内存。计数器位于页面,因此需要乘以 8192 才能得到字节。

Process Virtual Bytes 计数器和 SQL 自身的 Total Pages 之间可能存在很大差异。当 SQL 使用 AWE 映射内存时可能会发生这种情况,并且 SQL 也可能在 x64 平台上使用 AWE。

您还可以从 isnide 跟踪 SQL Server 内存消耗,查看系统.dm_os_memory_clerks或者运行DBCC 内存状态

如果你发现 SQL Server 使用内存:关闭你的会话,从键盘上放下你的手,然后走开。这是正常、预期和期望的行为。如果您需要内存用于任何其他进程,请将该进程从与 SQL 相同的主机移开。永远不要在运行 SQL Server 的同一台主机上运行任何其他东西(没有 IIS、没有 ASP、没有交换、没有 DC、没有 DNS/Winds,没有什么)。

答案2

只是一点评论:如果你可以自由地“重置服务器并清除正在使用它的内容",那么您也可以直接停止SQL Server服务。

如果你这样做,你就会知道是否实际上是 SQL Server 耗尽了你所有的内存。

相关内容