Buffer Pool--内存相关术语

虚拟地址空间(virtual address space):

供应用程序能够申请访问的最大地址空间,32位系统上为4GB,64位系统上是8TB,虚拟地址空间映射的数据不一定存放在物理内存中,还可能存放在页面文件(page file)中

 

Reserved Memory(保留内存):

应用程序通过windows api向虚拟地址空间上申请保留的一块内存地址空间,该空间不是物理内存空间,甚至尚未分配空间/建立页面映射

 

保留内存只是虚拟内存空间上的一段地址,而非真正的物理内存空间,甚至根本没有分配空间/建立页面映射

 

保留地址空间不能被其他程序访问

 

Committed Memory(提交内存)

将预先保留(reserved)内存正式提交(committed)使用,提交的页面在访问时最终转化成物理内存中的有效页面,即在物理内存中申请到一段空间来存放数据。

 

 

Shared Memory(共享内存):

在进程和操作系统间可以相互共享的内存,对多个进程可见的内存或存在于多个进程的虚拟地址空间

 

 

Private Bytes

某个进程提交的地址空间(committed memory),非共享部分

 

 

Working set(工作集)

进程提交的并且存放在物理内存的内存空间

 

Page Fault(页面访问错误)

1.soft Page Fault:目标页面不存在于当前工作集下,需要一次跳转才能访问到的其他进程工作集下的物理地址空间,成为软错误,该错误切换速度快,可以不考虑

2.Hard Page Fault:目标页面存在硬盘上,需要一次硬盘读,管理员需要关注该错误

 

System Working Set:

系统使用的物理内存

 

System Cache:

用于映射在系统高速缓存中打开的文件页面,以提高磁盘IO任务的速度

 

Non Paged Pool:

包括一定范围的系统虚拟地址的内存交换区,保证在任何时候都驻留在物理内存的页面

 

Paged Pool:

系统空间中可以调入调出系统进程工作集的虚拟内存区域,页交换区在系统初始化时建立,被内存模式组件用来分配系统内存

 

stack(栈)

每个线程有两个栈,一个内核模式(kenel model),一个用户模式(user model)

 

Lock Page In Memory:

当SQL的启动系统有Lock Page In Memory的权限时,会将申请到的物理内存一直锁住不释放,不会被Windows的换页机制换出到磁盘上。

但当windows有内存压力时,SQL Server仍需释放内存。

SQL Server企业版会默认开启该选项

 

 

 

SQL Server中NonBuffer Pool中的内存在windows存在内存压力时也不释放。

 

SQL Server中Min Server Memoery 是逻辑概念,不表示SQL Server 使用最小物理内存数,当SQL Server申请内存超过该值后,SQL server内存值到达该值后便不会在释放

SQL Server中Max Server Memoery 是逻辑概念,表示SQL sever的使用内存不超过该值,但该值不代表物理内存值。

 

请不要使用sp_configure 'set working set size'来配置内存,可能会引发错误

 

posted on   笑东风  阅读(371)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现

导航

点击右上角即可分享
微信分享提示