设为首页 收藏本站
查看: 978|回复: 0

[经验分享] SQL Server 2012内存

[复制链接]

尚未签到

发表于 2018-6-9 07:56:19 | 显示全部楼层 |阅读模式
  SQLServer 2012内存
  翻译自:https://mssqlwiki.com/tag/sql-server-2012-memory-architecture/
  SQL Server 2012与之前的版本相比,内存管理器在有效的方式管理SQL Server内存消耗上做出了很多改变。每个DBA应该知道的SQL Server 2012内存的重要改变已经在这篇博文中文档化了。如果你不熟悉之前版本的SQL Server内存架构,在你继续了解Denali内存管理器的改变之前,我推荐你阅读这篇文章。
DSC0000.jpg

  MaxServer Memory
  在之前版本的SQL Server里,“Max Server Memory”控制了Single page allocator(BPOOL)可以在SQL Server中消耗的用户地址空间的最大物理内存。
  只有Single page allocator时候BPOOL的一部分,Max server memory只控制BPOOL,因此,以下分配来自BPOOL(Max server memory)之外。

  •   来自SQL Server的Multi-Page分配(这些分配请求大于8KB且需要持续内存)
  •   CLR分配(这些包含SQLCLR堆和在启动期间创建的全局分配)
  •   SQL Server进程里用于threadstacks的内存使用(Max worker threads * thread stack size)。Thread stack size在32位SQL Server里是512K,在WOW是904K,在64位是2MB
  •   通过Non-SQL Server dll产生的直接Windows分配(这些包含Windows堆使用和通过模块加载到SQL Server进程里的直接虚拟分配。例如:来自扩展存储过程DLL的分配,使用OLE自动化过程(sp_OA调用)的对象创建,加载到SQL Server进程里的链接服务器提供者的分配)
  SQL Server 2012内存管理器现在已经结合了singlepage allocator和multipage allocator作为any-size page allocator。结果,any-size paeallocator现在管理分配,而在过去归类为single page和Multi-page分配。

  •   “Max server memory”现在控制和包含“Multi pages allocations”。
  •   之前版本SQL Server CLR分配内存在BPOOL(Max server memory)之外。SQL Server 2012包含在“Max server memory”里包含SQL CLR分配的内存。
  SQL Server 2012“Max servermemory”配置不只包含以下分配:

  •   SQL Server进程里对于threadstacks的内存分配。
  •   直接对于Windows的内存分配请求(例如:来自于加载到SQL Server进程的第三方DLL的分配(Heap,Virtualalloc调用),使用OLE自动化过程(sp_OA)等的对象创建)。
  这些改变允许DBA根据内存需要和使用资源调节器更加准确的配置和控制SQL Server。
  -g启动参数
  我们使用-g启动选项修改在SQL Server用户地址空间称为“Memory-To-Reserve”的一个区域的默认值。这个区域也被为“Memory-To-Leave”或MTL。这个“Memory-To-Reserve”或-g配置选项只与32位SQL Server实例相关。
  在之前的SQL Server版本里,直到SQL Server 2008 R2,Multi pages allocation和CLR是Memory-To-Reserve (-g)的一部分,从Denali开始它们是BPOOL的一部分(被Max server memory控制),因此,如果你在之前的版本设置它为multipage allocator或CLR分配更多空间,而现在迁移到Denali,你需要移除-g。
  从SQL Server2012开始移除了AWE特性
  AWE特性在之前32位版本的SQLServer中用于寻址大于4GB内存。该特性现在从Denali中移除了。参考:“AWE弃用”。因此如果你需要更多内存,那么你需要迁移到64位SQL Server。
  在内存中锁定页
  跟踪标志845不再需要在内存中锁定页。只要SQL Server启动账号有“Lock pages in memory”权限,数据中心版、企业版、标准版和商业智能版对于在BPOOL中分配内存将使用AWE分配器API,该分配将会被锁定。
  动态虚拟地址空间管理
  在之前版本的32位SQL Server里,我们在启动时预留了Bpool,剩下的地址空间用于MTL(Memory to reserve或Memory to leave)。在Denali虚拟地址空间管理是动态的(我们不在启动时预留),因此,对于第三方组件相比使用-g参数配置,可以使用更多内存。
  SQLCLR在启动时加载
  在之前版本的SQL Server,Common language runtime(CLR)功能当第一个SQL CLR过程或函数被调用的时候在SQLServer进程内初始化。SQL Server 2012在启动时执行SQL CLR初始化。该初始化不依赖于“clr enabled”配置选项。
  你会注意到在服务启动期间SQL Server错误日志里的如下信息:
2012-10-18 15:23:13.250spid8s       Starting up database ‘master’.

2012-10-18 15:23:13.930Server       CLR version v4.0.30319 loaded.

  总的物理内存和内存模块使用
  在服务器上总的物理可用内存和内存模块使用记录在SQL Server错误日志。
2012-10-18 15:23:06.690Server       Detected 131067 MB of RAM. This isan informational message; no user action is required.

2012-10-18 15:23:06.700Server       Using locked pages in the memorymanager

2012-10-22 15:32:20.450Server       Detected 131067 MB of RAM. This isan informational message; no user action is required.
2012-10-22 15:32:20.450 Server       Using conventional memory in the memory manager.

  DMV和性能计数器改变
  在之前的SQL Server版本里,与SQL Server在BPOOL内和BPOOL外相关的分配,大多数DMV使用single_pages_kb和multi_pages_kb。现在它们一起体现为pages_kb。更多详情请点击这里。
  

  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-521104-1-1.html 上篇帖子: Windows群集之NLB 下篇帖子: windows server 2012安装后规划分区
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表