高内存 94% SQL 服务器

Tal*_*la -1 sql-server

我在运行 High Availability Group, 2019 的生产 SQL 服务器上遇到问题。

问题是,VM 内存不是突然达到 94%,而是每天逐渐达到 8% 到 10%,当达到 94% 时,直到我重新启动 SQL 服务才减少。

SQL Server 最大内存已修改为 25 GB,VM RAM 32GB。

我注意到 sp_server_dgnostic 消耗的等待时间长达 4 小时。

有什么建议吗?

J.D*_*.D. 5

正如评论中所指出的,SQL Server 的设计目的是消耗机器的内存并保留它,因为它通过缓存大量内容(包括正在查询的表的常用数据页)来减少 I/O 争用。

请参阅Microsoft 的监视内存使用情况 - 配置 SQL Server 最大内存:

默认情况下,随着时间的推移,SQL Server 实例可能会消耗服务器中大部分可用的 Windows 操作系统内存。一旦获取内存,除非检测到内存压力,否则不会释放。这是设计使然,并不表示 SQL Server 进程中存在内存泄漏。

还有 Microsoft 关于内存管理架构指南 - SQL Server 内存架构的文档:

所有数据库软件的主要设计目标之一是最大限度地减少磁盘 I/O,因为磁盘读取和写入是资源最密集的操作之一。SQL Server 在内存中构建一个缓冲池来保存从数据库读取的页面。SQL Server 中的大部分代码致力于最大限度地减少磁盘和缓冲池之间的物理读写次数。

另请参阅 Brent Ozar 在内存危险低或最大内存过高中的建议,其中使用的经验法则是至少为操作系统保留 4 GB 或已安装总内存的 10%(以较大者为准)。

此外,您可以在这个类似的DBA.StackExchange 问题中找到更多详细信息。