【问题标题】:Seeing High Memory Usage In SQL Server 2012查看 SQL Server 2012 中的高内存使用率
【发布时间】:2014-05-16 21:30:55
【问题描述】:

我们刚刚安装了 SQL Server 2012 并实施了 AAG。它是 Windows 2012 上的 2 节点集群。服务器是使用 VMWare 5.1 的 VM。出于某种原因,我看到最大内存使用量为 15 gigs。服务器有 16 GB 的内存,我将 SQL 中的最大内存设置为 12 GB,将最小内存服务器设置为 8 gigs。 对于 SQL 来说,这样的内存最大化是正常的吗?该服务器上没有运行其他应用程序,并且当时的活动非常少。

【问题讨论】:

  • 您在哪里验证 15 GB 正在使用中?你确定你的最大服务器内存设置有效吗?仅仅运行sp_configure 是不够的,您还必须发出RECONFIGURE; 命令。如果你运行DBCC MEMORYSTATUS;,内存是如何分配的?
  • 我查看了任务管理器,它说我正在使用 15.2/16 GB 的内存。我在设置 MAX 和 MIN 内存时确实运行了重新配置语句,当我检查最大服务器内存时,运行值为 12582912 KB。运行 dbcc memorystatus 时需要寻找什么?
  • 别再看任务管理器了——这是个大骗子。查看实际性能计数器或 DBCC MEMORYSTATUS。
  • 服务器总内存(KB)为14772608,目标服务器内存为16776688。

标签: memory sql-server-2012


【解决方案1】:

SQL Server 将非常“渴望”内存,并在属性中设置的限制范围内从操作系统中获取它所能提供的一切。您还没有完全清楚 15GB 的“内存使用量”是用于整个服务器还是用于 sql 服务器本身?如果在您将最大内存设置为 12 后它使用 15GB,我会感到惊讶。如果您的 SQL 服务器使用 12,而您的操作系统的其余部分使用 3GB,那么这对我来说听起来很正常。

确定 SQL 服务器正在使用什么内存并不像查看 Windows 任务管理器那么简单。正如我所提到的,它将尽其所能从操作系统中避免以后在申请更多内存时产生任何开销,即使它还没有全部使用。

我们的服务器最多使用 64GB 内存,当我们倾向于分配比服务器总数少 4GB 的 SQL Server 时,将 4GB 留给 Windows。然后,我希望大多数服务器始终只显示 1 或 2GB 的可用内存。这确实使理解内存是否是 SQL Server 中的瓶颈变得更加困难,因为您需要按照 user2665372 的状态使用性能计数器。有关详细信息,请参阅此:How much RAM is SQL Server actually using?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-18
    • 2014-09-07
    • 2013-05-06
    • 1970-01-01
    • 1970-01-01
    • 2015-07-20
    相关资源
    最近更新 更多