SQL Server 中分配给内存组件的内存究竟是什么?
我认为committed
内存是正在使用的物理内存reserved
量,是虚拟地址空间中尚未映射到物理内存的内存量。
但是当谈到allocated
记忆时,我感到困惑。当内存组件从内存管理器请求内存时,被授予的内存的性质是什么?真实/物理或 VAS?
以下是 DMV 的示例:
SELECT pages_kb AS A
,virtual_memory_committed_kb AS C
,virtual_memory_reserved_kb AS R
FROM sys.dm_os_memory_clerks;
Run Code Online (Sandbox Code Playgroud)
A、C 和 R 列之间没有任何关系。最初我期望的是A = C + R
,这意味着 A,分配的内存页,应该作为 VAS 中的内存开始,并表示使用这么多内存的意图。但显然这是不对的。
我如何解释分配的内存?谢谢
SQL Server 中分配给内存组件的内存到底是多少?
分配的内存是分配给 SQL Server 进行各种处理的内存。分配是一个宽泛的术语,这意味着在提供内存时您不应该赋予它任何特定的含义。
您是正确的,提交的内存是使用的物理内存,因为提交的内存由物理内存支持,而保留的内存是由进程保留的内存,它认为它可能需要它可能不一定会提交。
当内存组件向内存管理器请求内存时,被授予的内存的性质是什么?真实/物理还是增值服务?
VAS:虚拟地址空间是进程创建时可以在系统中看到的虚拟内存总量。
当SQL Server进程请求内存时,它首先被映射到该区域中的VAS地址。64位系统的VAS为8TB,32位系统的VAS为4GB。每个请求内存的进程都会看到等于 4GB 或 8 TB 的虚拟内存,具体取决于其运行的架构(32 或 64 位)。现在,在进程映射到VAS内存管理器找到它可以映射到的物理内存后,最终将内存提交给该进程,当最终完成时,内存被分配,称为分配给进程的物理内存。
Virtual_memory_commissed:这是职员报告的已提交的虚拟内存。
Virtual_memory_reserved:这是由职员跟踪保留的虚拟机。
Pages_kb:分配给进程的页内存量。
我希望这能为你清除一些事情
归档时间: |
|
查看次数: |
4107 次 |
最近记录: |