【问题标题】:How exactly can i troubleshoot MEMORY_ALLOCATION_EXT waits?我该如何解决 MEMORY_ALLOCATION_EXT 等待问题?
【发布时间】:2016-10-08 07:15:36
【问题描述】:

我们在 SQL Server 2016 中有一个服务器环境。服务器是虚拟化的,这意味着它共享其内存和 cpu。

最近,如果压力很大,即构建哈希表等,我们会看到内存使用量的大幅增长,这是可以预料的。

但是我们看到很多

MEMORY_ALLOCATION_EXT 

RESERVED_MEMORY_ALLOCATION_EXT

等待。

所以服务器有足够的内存,我们最近也将内存翻了一番,但内存等待仍然存在。

从监控服务器状态来看,它似乎不需要更多内存,但您认为这些等待的原因可能是什么?

【问题讨论】:

  • 你的服务器好像是在 vm 上运行的,你是把 RAM 分配为 Dram 还是静态 ram。
  • 好问题。我只是开发人员,不是 DBA 也不是系统管理员,所以我不能告诉你。
  • 检查此图片并更新问题,如有任何进一步的问题:google.com/imgres?imgurl=http://sqlmag.com/content/content/…
  • 你可以看到这些设置,如果你右键点击超V

标签: sql-server memory database-administration


【解决方案1】:

Paul Randall says that it is safe to ignore "MEMORY_ALLOCATION_EXT",他的指导非常可靠;查看查询中的谓词"WHERE [wait_type] NOT IN"

对于RESERVED_MEMORY_ALLOCATION_EXT,我会设置一个Extended Event,用于缓存哪些特定事务正在等待并查看它们的执行计划。我不肯定它与实际的系统或用户交易有关。

【讨论】:

    【解决方案2】:

    从内部 SQL Server 内存池或操作系统分配内存时会发生这种情况。因此,最好在查询运行时检查负载。

    【讨论】:

      猜你喜欢
      • 2019-03-27
      • 1970-01-01
      • 2020-09-02
      • 1970-01-01
      • 2020-03-25
      • 2020-02-14
      • 2021-08-19
      相关资源
      最近更新 更多