Windows 2008 R2 内存总是满的

Ary*_*rya 4 windows-server-2008-r2 sql-server-2008

我们在具有 24GB RAM 的 HP 服务器上安装了 Windows 2008 R2。安装的唯一重要软件是 SQL Server 2008 R2,在此 Windows 上几乎没有启用任何功能或角色。

但问题是 RAM 总是快满了。当我们查看任务管理器或资源监视器或第三方程序的内存部分的性能时,我们看到大约 97%-99% 的 24GB RAM 被占用,但所有进程使用的内存总和不到 1GB。

如果使用了这个百分比的内存,为什么 windows 无法显示哪些进程正在使用这个内存量?如果没有,为什么 Windows 说 RAM 已满?

Ars*_*nko 6

SQL Server 使用所有可用内存。这不是错误,而是设计使然。这也是为什么必须将 SQL Server 安装在专用机器上(而不是与 IIS 一起安装的原因)。

长时间运行时,SQL Server 会根据执行的查询来存储数据,以便稍后执行更快。这意味着当您启动服务器时,内存使用量会很低,但会随着时间的推移而增长。

您可以调整 SQL Server 使用的内存限制,但除非您有严重的理由,否则不应这样做。

以下是Microsoft 支持网站上如何使用 SQL Server 中的配置选项调整内存使用情况的引述:

启动 SQL Server 时,SQL Server 内存使用量可能会继续稳定增加而不是减少,即使服务器上的活动很少。此外,任务管理器和性能监视器可能会显示计算机上可用的物理内存稳步减少,直到可用内存在 4 到 10 MB 之间。

这种行为本身并不表示内存泄漏。此行为是正常的,是 SQL Server 缓冲池的预期行为。