博客
关于我
SQL Server 内存和换页(Paging)
阅读量:443 次
发布时间:2019-03-06

本文共 1106 字,大约阅读时间需要 3 分钟。

虚拟内存管理与SQL Server内存性能优化

在操作系统中,进程通过申请虚拟地址空间(VAS)来获取内存资源。VAS并非真实的物理内存空间,而是由操作系统将其映射到物理内存空间的过程。这种映射机制允许进程存储其上下文信息并继续执行,尽管VAS可能远大于实际物理内存容量。

物理地址空间(PAS)是进程执行所依赖的实际内存空间。操作系统通过将VAS与PAS建立映射关系,为进程分配所需的物理内存。VAS中的数据不一定全部驻留在物理内存中,操作系统会根据使用情况将数据存储在Paging File中。

虚拟内存管理器(VMM)负责监控和管理每个进程的VAS,确保物理内存资源的有效分配。需要注意的是,物理内存并非一次性分配给进程,而是按需分配和回收,以优化内存利用率。

Working Set(工作集)是指进程在运行时占用的物理内存页面集合。为了提高内存利用效率,系统不会一次性为进程分配所有所需物理内存,而是按需分配。页面错误(Page Fault)是进程访问VAS时,由于物理内存不足而需要从Paging File读取数据的过程。

分两步申请内存资源——先保留(VAS),再承诺(Committed Memory),可以有效减少初始内存占用。Committed Memory是指将VAS的一部分地址空间正式映射到物理内存中,这样应用程序才能真正使用这些物理内存空间。

Workset是Committed Memory的一部分,表示进程正在使用的物理内存页面集合。页面错误可分为硬页面错误(Hard Page Fault)和软页面错误(Soft Page Fault)。硬页面错误意味着需要从Paging File读取数据并驻留在物理内存中,通常伴随磁盘IO操作,对性能影响较大;而软页面错误仅需将物理内存页面重新定向到Workset中,对性能影响较小。

对于SQL Server系统,物理内存的充足使用至关重要。频繁的硬页面错误会导致磁盘IO增多,影响系统性能。在内存资源紧张的情况下,系统会频繁进行Paging操作,这些操作通常运行在核心态,占用较多CPU资源。

要优化SQL Server的内存性能,需要监控Committed Memory、Available Memory以及硬页面错误率。Committed Memory接近最大内存容量时,可能提示系统资源紧张。Page File的使用情况也需关注,特别是其占用率高可能表明内存不足,数据频繁被交换至磁盘。

通过合理的内存管理策略,确保数据库运行在充足的物理内存环境中,可以有效减少硬页面错误,降低磁盘IO负担,从而提升SQL Server的整体性能。

转载地址:http://dtxyz.baihongyu.com/

你可能感兴趣的文章
Python3 shutil模块
查看>>
Python关于strftime函数详细解析 附实战代码
查看>>
Python3 tutorial day3
查看>>
python3 week4
查看>>
Python3 创建数组
查看>>
python3 套接字异常(a byte-like object is required not str)
查看>>
python3 实现用户三次输入错误记录黑名单并对该用户登录锁定-day1
查看>>
python3 文本变图片
查看>>
Python3 查看 com 组件的属性
查看>>
python3 案例分享--发邮件
查看>>
python3 模板库_Python3 标准库概览_Python教程_我爱模板网 - 提供下载各种免费建站资源,免费网站模板,免费网页特效,让你爱上建站!...
查看>>
Python3 求最大/小值及索引值 Numpy
查看>>
python3+django使用celery执行某些任务失败的解决方案
查看>>
Python3+Requests+Unittest实战系列【一】
查看>>
python3+requests+unittest实战系列【一】
查看>>
python3+requests+unittest实战系列【二】
查看>>
Python3+Requests+Unittest实战系列【二】
查看>>
python3----ASCII
查看>>
Python3-selenium自动化测试框架,结合HTMLTestRunner测试报告!
查看>>
Python3-如何自我更新作为服务运行的应用程序
查看>>