这是在 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
所以提交的内存不仅仅是物理内存。我觉得这很奇怪,所以我重新启动了服务器,再次运行查询,数字改变了,但 Committed 仍然大于 Physical:
Reserved Committed Physical
102,000,616 2,259,624 1,743,392
这正常吗?如果没有,我的服务器是否有严重问题?
正常吗,是的。这与 Windows 内存管理器的工作方式以及已提交内存和物理内存之间的区别有关(这里使用的内存模型是使用虚拟内存,它允许“内存”的各种存储范围,例如页面文件或多个页面文件)。对此有一个超级用户的回答,另外还有一些关于提交费用的不错的阅读。
内存可能是一个非常大的黑洞,具体取决于您想去多深,但基本上并非所有内存都需要始终位于物理内存中(并且可以被分页,这是一个常用术语),具体取决于使用情况(我们只是在谈论用户模式内存而不是内核)。这有很多方面,但根据您的输出无需担心。