zoukankan      html  css  js  c++  java
  • Memory Manager surface area changes in SQL Server 2012

    here were various changes to memory related DMVs, DBCC memory status, and Perfmon counters in SQL Server 2012 as part of the redesign of the Memory Manager component of SQLOS. The Memory Manager redesign resulted in being able to more accurately size and govern all SQL Server memory consumption, making page allocations more efficient, and better handling and tracking of NUMA node memory allocations. This post aims to document these surface area changes in one place to serve as a quick reference.

    Some of these changes were to standardize memory counters as “kb” rather than bytes or pages, continuing a process begun earlier, but now more relevant since the single and multi-page allocators were replaced by an any-size page allocator, so counting pages allocated would no longer give a meaningful view of memory use. This consolidation of allocators also resulted consolidated counters for page allocation.

    Other changes reflect the central role of the redesigned Memory Manager in being the interface to the OS, providing page allocations for the other components. A modular summary of the architectural changes is shown below:

     

    DMV Changes

    sys.dm_os_memory_nodes

    The consolidation of the single and multi-page allocators is reflected in the pages_kb column in sys.dm_os_memory_nodes. The new foreign_committed_kb counter is a result of the improved NUMA management and reporting in SQL 2012 and identifies memory on a noe that belongs to a remote node, which can be useful if you’re troubleshooting slower memory access. We will always try and use local memory first, at least until the target memory is reached.

    sys.dm_os_memory_nodes

    SQL Server 2012

    SQL Server 2008 R2

    pages_kb

    single_pages_kb +
      multi_pages_kb

    foreign_committed_kb

    sys.dm_os_sys_info

    The main memory manager changes here are to standardize memory counters.

    sys.dm_os_sys_info

    SQL Server 2012

    SQL Server 2008 R2

    physical_memory_kb

    physical_memory_in_bytes

    virtual_memory_kb

    virtual_memory_in_bytes

    committed_kb

    bpool_committed

    committed_target_kb

    bpool_commit_target

    visible_target_kb

    bpool_visible

    sys.dm_os_memory_cache_counters

    sys.dm_os_memory_cache_counters

    SQL Server 2012

    SQL Server 2008 R2

    pages_kb

    single_pages_kb +
      multi_pages_kb

    pages_in_use_kb

    single_pages_in_use_kb
      + multi_pages_in_use_kb

    sys.dm_os_memory_cache_entries

    sys.dm_os_memory_cache_entries

    SQL Server 2012

    SQL Server 2008 R2

    pages_kb

    pages_allocated_count

    sys.dm_os_memory_clerks

    sys.dm_os_memory_clerks

    SQL Server 2012

    SQL Server 2008 R2

    pages_kb

    single_pages_kb +
      multi_pages_kb

    page_size_in_bytes

    page_size_bytes

    sys.dm_os_memory_objects

    sys.dm_os_memory_objects

    SQL Server 2012

    SQL Server 2008 R2

    pages_in_bytes

    pages_allocated_count

    max_pages_in_bytes

    max_pages_allocated_count

     

    DBCC Memory Status changes

     Many of the DBCC memory counters that were previously under Buffer Pool have now been consolidated under Memory Manager to reflect the revised architecture. There is also some additional information to reflect OS errors and NUMA awareness. NUMA growth phase shows memory growth before the target is reached. The “Pages In Use” counter shows the actual number of pages in use, including the stolen pages, database pages, and the reserved memory. The Away Committed counter indicates how much memory from this node is committed from other nodes.

    SQL Server
      2012

    SQL Server
      2008 R2

    Memory Manager
      Large Pages Allocated

    Memory Manager
      Emergency Memory

    Memory Manager
      Reserved Memory

    Memory Manager Emergency
      Memory In Use

    Memory Manager
      Reserved Memory In Use

    Memory Manager
      Target Committed (KB)

    Buffer Pool
      Target (Pages)

    Memory Manager
      Current Committed (KB)

    Buffer Pool
      Committed (Pages)

    Memory Manager
      Pages Allocated (KB)

    Buffer Pool
      Stolen (Pages) + Buffer Pool Database (Pages)

    Memory Manager
      Pages Reserved (KB)

    Buffer Pool
      Reserved (Pages)

    Memory Manager
      Pages Free (KB)

    Buffer Pool Free
      (Pages)

    Memory Manager
      Pages In Use

    Memory Manager
      Page Alloc Potential (KB)

    Buffer Pool
      Stolen Potential (Pages)

    Memory Manager
      NUMA Growth Phase

    Memory Manager
      Last OOM Factor

    Buffer Pool Last
      OOM Factor

    Memory Manager
      Last OS Error

    SQL Server
      2012

    SQL Server
      2008 R2

    Memory Manager
      Large Pages Allocated

    Memory Manager
      Emergency Memory

    Memory Manager
      Reserved Memory

    Memory Manager
      Emergency Memory In Use

    Memory Manager
      Reserved Memory In Use

    Memory Manager
      Target Committed (KB)

    Buffer Pool
      Target (Pages)

    Memory Manager Current
      Committed (KB)

    Buffer Pool
      Committed (Pages)

    Memory Manager
      Pages Allocated (KB)

    Buffer Pool
      Stolen (Pages) + Buffer Pool Database (Pages)

    Memory Manager
      Pages Reserved (KB)

    Buffer Pool
      Reserved (Pages)

    Memory Manager
      Pages Free (KB)

    Buffer Pool Free
      (Pages)

    Memory Manager
      Pages In Use

    Memory Manager
      Page Alloc Potential (KB)

    Buffer Pool
      Stolen Potential (Pages)

    Memory Manager
      NUMA Growth Phase

    Memory Manager
      Last OOM Factor

    Buffer Pool Last
      OOM Factor

    Memory Manager
      Last OS Error

    SQL Server
      2012

    SQL Server
      2008 R2

    Memory node Id = n
      Pages Allocated

    Memory node Id = n
      MultiPage Allocator + Memory node Id = n SinglePage Allocator

    Memory node Id = n
      Target Committed

    Memory node Id = n
      Current Committed

    Memory node Id = n
      Foreign Committed

    Memory node Id = n
      Away Committed

    Memory Clerks
      Pages Allocated

    Memory Clerks
      SinglePage Allocator + Memory Clerks MultiPage Allocator

    Perfmon counters

     The Perfmon counter changes follow the same consolidation of counters under the Memory Manager object, and the standardization of counters to KB. Several deprecated AWE counters are now removed.

    SQL Server 2012

    SQL Server 2008 R2

    Object – SQLServer:Memory
      Manager

    Object – SQLServer:Buffer
      Manager

    Database Cache Memory (KB)

    Database pages

    Free Memory (KB)

    Free pages

    Reserved Server Memory (KB)

    Reserved pages

    Stolen Server Memory (KB)

    Stolen pages

    Target
      Server Memory
      (KB)

    Target
      pages

    Total
      Server Memory (KB)

    Total
      pages

    AWE
      lookup maps / sec

    AWE stolen maps / sec

    AWE
      write maps /
      sec

    AWE
      unmap
      calls / sec

    AWE
      unmap
      pages / sec

    SQL Server
      2012

    SQL Server
      2008 R2

    Object –
      SQLServer:Memory Node

    Object –
      SQLServer:Buffer Node

    Database Node
      Memory (KB)

    Database pages

    Free Node Memory
      (KB)

    Free pages

    Foreign Node Memory
      (KB)

    Foreign pages

    Stolen Node Memory
      (KB)

    Stolen pages

    Target Node Memory
      (KB)

    Target pages

    Total Node Memory
      (KB)

    Total pages

    I’ll follow up this article with some additional surface area changes for configuration and new memory manager messages that appear in the errorlog. 

    The goal of these changes is to make the new Memory Manager activity easier and more intuitive to track, and to clean up some of the values that no longer make sense with the any size page allocator and deprecation of AWE. Anything you used to use but can’t find any more? Let me know.

  • 相关阅读:
    windows server 2008 R2 安装 sql server 2000 遇到的种种问题
    圆心的VPS记录信息
    无法访问.您可能没有权限使用网络资源.局域网无法访问共享,局域网无法访问打印机的一些方法
    win7 32位 fastcgi模式 运行php
    SpringBoot+JPA实例
    马斯洛的锤子论
    一道算法题
    MySQL源码解读之数据结构LF_HASH
    JS学习专辑外传(1)
    WPF 用DynamicResource动态样式切换
  • 原文地址:https://www.cnblogs.com/lenther2002/p/6781777.html
Copyright © 2011-2022 走看看