Hi all , just want to know the difference of memory clerks and memory objects and what's are their relationship ?
Memory clerk: Memory Clerk is used to allocate memory, and is used to classify the memory out of Allocate
Memory object: The menory object is essentially a heap, which is allocated by Page Allocator. It can be viewed through the DMV of sys.dm_os_memory_objects. This DMV can see a column of Page_Allocator_Address. This column is the identity of the Memory Clerk, indicating which Memory this Memory Object is from. Clerk assigned it.
Relationship: Memory object can be viewed through the DMV of sys.dm_os_memory_objects. This DMV can see a column of Page_Allocator_Address. This column is the identity of the Memory Clerk, indicating which Memory this Memory Object is from. Clerk assigned it.
another question is why virtual_memory_committed_kb is much less than pages_kb??
No. There is no value to compare them, virtual_memory_comitted_kb can also larger than pages_kb in your screenshot.
pages_kb is the size that memory clerks memory are in PHYSICAL MEMORY ?
Pages_kb: column names of DMVS’;
Physical memory: As the name suggests, it is the physical storage space provided by the memory chip. Accessing data stored in physical memory is usually much faster than accessing a hard disk. For SQL Server, data objects that are frequently accessed must be cached in physical memory for a long time in order to achieve optimal efficiency.
I would also ask questions on memory pools sys.dm_os_memory_pools, pool_id 0 is the internal pool ? pool_id 1 is default pool ? is it referring resource default /internal pool ?. how it's mapped with memory clerk ?
Although the official documentation does not indicate it , I do not think default poolid is 1 and internal pool_id is 0, because we can check from next screenshot, same address but different id. It is different from definition of resource pool.
If the reply is helped, please do “Accept Answer”.--Mia