我只是在那里遇到了一个问题,SQL Server 数据库的大小占用了相当多的 RAM。
一点背景:
该数据库适用于小型内容管理网站。CMS 是在 ASP 中自定义构建的,其中散布着一些未经优化的查询,但还不错。实际数据库在磁盘上占用 132MB。
现在回到 SQL Server。
在查看服务器选项时,我遇到了内存部分。我注意到它被设置为 2147483647MB,这让我想到将这个值设置为更小的值可能是一种解决问题的方法。
我将其设置为 500MB,这是一个很大的差异。
到目前为止,该网站运行良好,服务器上的内存不再出现问题。
我的问题:
我如何确定将其设置为的最佳值是多少?500MB 低吗?此服务器上将有另一个数据库。不过它会小得多,大约 50MB。
编辑(更多信息)
我应该补充一点,导致我寻找此内存设置的问题是 SQL Server 在需要时没有将内存释放回操作系统。我运行一个旧站点,需要即时编译页面(即没有 bin 文件夹),并且存在一些页面在需要时未编译的问题。服务器出现内存不足错误。
这个特定的服务器有 2GB 的 RAM。
我不确定我是否相信曾经有过实际问题。仅仅因为最大服务器内存设置为 2 PB 并不意味着它会使用那么多。这在功能上等同于将其设置为无穷大,并且仅意味着您信任 SQL Server 使用它需要的尽可能多的内存。
将它设置为 500 MB 对我来说似乎人为地低。虽然您的数据库目前在磁盘上有 128 MB,但您可能没有运行任何会导致任何性能问题的查询模式,即使存在内存限制也是如此。但是当 SQL Server 需要更多超过 500 MB 的内存,您将开始注意到。SQL Server 被设计为好像它是机器上唯一的服务器一样,因此它将根据需要占用内存,并且不会释放它,除非操作系统需要它并向 SQL Server 施加压力(LPIM 的讨论放在一边)。以这种方式限制 SQL Server 的内存(或将其移除)只会导致性能下降,因为将数据分页进出内存、磁盘等的成本要高得多。随着数据库的增长,这肯定是必需的。考虑尝试将猪放入管袜中 - 最终您将需要更大的袜子。为什么要等到当前的袜子撕裂?
我建议一个更高的限制,但我不能告诉你那会是什么。你没有透露服务器上有多少内存,是 x86 还是 x64,或者还有什么将在那里运行。如果服务器专用于 SQL Server,我认为绝对没有理由节省内存——你保存它是为了什么?
对于一些轶事观察,我认为我从未在任何类型的物理或虚拟机上看到任何 SQL Server 实例限制为 500 MB,我非常怀疑这可能是最佳设置从长远来看,为您服务。
我还建议对 SQL Server 设置进行研究,然后更改它们,而不是相反。这种情况听起来很像在说“这个按钮有什么作用?” 按下后...
| 归档时间: |
|
| 查看次数: |
1030 次 |
| 最近记录: |