zoukankan      html  css  js  c++  java
  • [翻译]SQL Server 工作集消息

    Q:我发现有指向工作集(SQL Server保留内存区域)被分页出来相关的消息:
    重要部分的 SQL 服务器进程内存已被分页。这可能导致性能下降。持续时间: 0 秒。 工作集 (KB): 2484,已提交 (KB): 48036,内存使用比率: 50%。
    有什么原因可能导致这个问题?

    A:
    工作集调整分为以下几种:
    1. 信号调整
    低物理内存事件提醒事件是由操作系统设置的(参考:QueryMemoryResourceNotification<http://msdn2.microsoft.com/en-us/library/aa366799.aspx>),当物理内存低下时会出现。SQL Server资源监视器,Lazy writer和其他进程占用BPool内存部分。它会将物理内存返回给系统,然后降低SQL Server的工作集。当该事件产生时,sys.dm_os_ring_buffer和RING_BUFFER_RESOURCE_MONITOR的记录会被写入日志。这是SQL Server要保留预留内存的正常行为。该行为不会被写入错误日志信息。

    2. 自调整
    操作系统在新申请一个页的时候遇到了页错误,判断为物理内存不足。例如,如果SQL Server为一个栈,连接服务器或其他应用程序申请页,发现内存不足,会直接调整SQL Server的工作集。

    3. 硬调整
    当系统内存严重不足的时候,会发生硬调整。该行为会直接把SQL Server所有的工作集和其他进程分页出来。

    除了信号调整之外,自调整和硬调整都会写错误日志,导致性能问题。

    基本查错步骤:
    1. 确认没有其他进程快速吃完了内存。查看方法是监测内存:_Total工作集这个性能计数器。如果您启用了一个快速消耗内存的应用程序,工作集会被快速地调整,但_Total会保持不变。如果_Total快速下降,那么这就说明不是某个应用程序吃光了内存,而是发生了MiEmptyWorkingSet或MmAllocateContigiousMemory发生了,然后操作系统决定进行硬调整。

    2. 确认SQL Server进程ID在发生问题的时间段一直存在。如果SQL Server服务有被重启过计数器可能会产生容易误导的数据。

    3. 确认您的系统的驱动是最新的。驱动也可能会造成调整。

    4. 确认操作系统终端服务的bug不是导致该问题的原因:http://support.microsoft.com/default.aspx?scid=kb;EN-US;905865

    5. 抓取完整的性能计数器,和SQL Server的sys.dm_os_ring_buffers。

    6. 应用操作系统补丁:http://support.microsoft.com/default.aspx?scid=kb;EN-US;920739

    7. 应用操作系统补丁:http://support.microsoft.com/default.aspx?scid=kb;EN-US;931308

    8. 应用SQL Server 2005 SP3。

  • 相关阅读:
    从B树、B+树、B*树谈到R 树
    从LSM-Tree、COLA-Tree谈到StackOverflow、OSQA
    Linux Kafka源码环境搭建
    CentOS 关闭图形用户界面
    部署与管理ZooKeeper(转)
    spark 2.0.0集群安装与hive on spark配置
    hive on spark的坑
    Spark2.0.0源码编译
    hive spark版本对应关系
    CentOS7 设置集群时间同步
  • 原文地址:https://www.cnblogs.com/galaxyyao/p/1459611.html
Copyright © 2011-2022 走看看