SQLOS 内存管理器组件的关系

SQLOS 内存管理器组件的关系

 
内存节点
内存节点是内存被划为了几块。在numa体系中一个numa节点对应一个内存节点。
主要功能是提供分配位置。这句话来自 sql server 求生秘笈 很难理解。应该是分配内存用的。也可以理解为物理内存最原始的位置。
 
内存clerk
内存clerk,如果内存管理器的客户端需要分配内存,那么必须先建立内存clerk。
dmv 
2008:返回 SQL Server 实例中当前处于活动状态的全部内存 Clerk 的集合。
2012:返回 SQL Server 实例中当前处于活动状态的全部内存分配器的集合。
干嘛要翻译成内存clerk呢,翻译成分配器多好大家都看的懂。
 
内存对象
内存对象是一个堆,通过请求内存clerk分配内存,有3中类型的内存对象。
1.可变的内存对象
2.递增的内存对象
3.固定大小的内存对象
 
缓存
缓存在sql server 里面主要是2类一个是 buffer pool 一个是 高速过程缓存
buffer pool 由 8k固定大小的分配器 和 页缓存组成
 
图上面的各个框都解释了一下,接下来讲讲图,这个图的tip 是内存管理器的组件及其关系。
但是我看来感觉像是内存分配的过程。
 
1个内存对象通过页分配器 可以从buffer pool 中获取内存,也可以从内存clerk中获取内存。但是2者的内存终究是来至于 内存节点的,可以看出 实际安装的内存。内存的分配只是把物理内存的指针赋给了一个变量

你可能感兴趣的:(内存管理)