这是在 SQL Server 2019 上运行的,在具有 64GB 或 RAM 的 Windows 10 上运行。尝试解决内存问题时,我发现了一篇使用以下查询的帖子:
SELECT virtual_address_space_reserved_kb as Reserved,
virtual_address_space_committed_kb Committed,
physical_memory_in_use_kb as Physical
FROM sys.dm_os_process_memory
在我的服务器上运行查询产生以下结果:
Reserved Committed Physical
101,881,000 3,123,124 2,747,764
所以提交的内存比物理内存更多。我觉得这很奇怪,所以我重新启动了服务器,再次运行查询,数字发生了变化,但承诺仍然大于物理:
Reserved Committed Physical
102,000,616 2,259,624 1,743,392
这正常吗?如果没有,我的服务器是否存在严重问题?
所以提交的内存比物理内存更多。[...] 这正常吗?如果没有,我的服务器是否存在严重问题?
正常吗,是的。这与 Windows 内存管理器的工作方式以及提交内存和物理内存之间的差异有关(这里使用的内存模型是使用虚拟内存,它允许“内存”的各种存储范围,例如页面文件或多个页面文件)。对此有一个超级用户的答案,此外还有一些关于commit charge的不错的阅读。
内存可能是一个非常大的黑洞,具体取决于您想要多深,但本质上并非所有内存都需要始终位于物理 RAM 中(并且可以分页,这是一个常见术语),具体取决于使用情况(我们只讨论用户模式内存而不是内核)。这有很多方面,但根据您的输出,无需担心。