【问题标题】:SQL Server 2k5 memory consumption?SQL Server 2k5 内存消耗?
【发布时间】:2010-09-06 21:39:42
【问题描述】:

我有一个开发 vm,它正在运行 sql server 以及我的堆栈的其他一些应用程序,我发现其他应用程序的性能非常糟糕。在进行了一些挖掘之后,SQL Server 占用了内存。在快速的网络搜索之后,我发现默认情况下,它会消耗尽可能多的内存,以便缓存数据并将其返回给系统,因为其他应用程序请求它,但这个过程通常发生得不够快,显然我的情况是一个普遍的问题。

There however is a way to limit the memory SQL Server is allowed to have。我的问题是,我应该如何设置这个限制。显然我需要做一些猜测和检查,但是有绝对的最小阈值吗?任何建议表示赞赏。

编辑:

我会注意到,开发人员机器有 2 gigs 的内存,所以如果可能的话,我希望能够在 768 mb 或更少的内存上运行 vm。该虚拟机将仅用于本地开发和测试,因此负载将非常小。在本地测试代码后,它会进入另一个 SQL 服务器专用的环境。 我真正想要的是关于最低要求的建议

【问题讨论】:

    标签: sql-server performance


    【解决方案1】:

    摘自 SQL Server 文档:

    最大服务器内存(MB)

    指定最大内存量 SQL Server 启动时可以分配 当它运行时。这个配置 选项可以设置为特定值 如果你知道有多个 同时运行的应用程序 作为 SQL Server 并且您想要 保证这些应用程序有 足够的内存来运行。如果这些 其他应用程序,例如 Web 或 电子邮件服务器,请求内存仅作为 需要,然后不要设置选项, 因为 SQL Server 会释放内存 根据需要给他们。 但是, 应用程序经常使用任何内存 当他们开始和做时可用 如果需要,不要要求更多。 在此行为的应用程序 方式在同一台计算机上运行 与 SQL Server 一样,设置 选择一个值,保证 应用程序所需的内存 不是由 SQL Server 分配的。

    关于最低限度的建议是:没有这样的事情。内存越大越好。 SQL Sever 需要尽可能多的内存,否则它将破坏您的 IO。

    停止 SQL Server。运行您的其他应用程序并注意它们需要的内存量。从您的总可用 RAM 中减去该数字,并将该数字用于 SQL Server 中的 MAX 内存设置。

    【讨论】:

      【解决方案2】:

      由于这是一个开发环境,我同意 Greg 的观点,只是使用试错法。完全正确并不重要。

      但如果你在 VM 中做了很多工作,为什么不给它至少 2GB 的一半呢?

      【讨论】:

        【解决方案3】:

        所以我希望能够在上面运行虚拟机 如果可能,768 mb 或更少。

        这取决于您的数据和数据库的大小。但我通常喜欢给 SQL Server 至少一个 GB

        【讨论】:

          【解决方案4】:

          这真的取决于机器上还发生了什么。让事情在典型负载下运行,并查看任务管理器以了解其他一切所需的内容。试试这个数字开头。

          对于生产机器,当然最好将机器的控制权交给Sql Server(Processors -> Boost Sql Server Priority),让它拥有它想要的所有RAM。

          由于您使用的是虚拟机,也许您可​​以为 Sql Server 创建一个专用的虚拟机,并在不同的虚拟机上运行其他所有内容。

          【讨论】:

            猜你喜欢
            • 2014-09-25
            • 2013-09-08
            • 1970-01-01
            • 2010-10-12
            • 1970-01-01
            • 2011-10-03
            • 2012-11-24
            • 2013-10-08
            • 1970-01-01
            相关资源
            最近更新 更多