【问题标题】:Azure Analysis Services Server Using Much More Memory Than Model Size?Azure Analysis Services 服务器使用比模型大小更多的内存?
【发布时间】:2022-09-28 00:35:34
【问题描述】:

我们有一个带有 5 个模型的 Azure SSAS 服务器,总计约 5GB 的数据。 Azure 门户通常说我们基本上一直在使用 ~10GB 的内存。今天,这个 10GB 已经飙升到大约 22GB(我们的上限是 25GB)。我尝试重新启动它,查看分析器,并没有真正看到任何事情发生。

此外,如果我使用下面的查询查询内存使用情况,它会显示 16GB。

select cast((cast(sum(OBJECT_MEMORY_SHRINKABLE) + sum(OBJECT_MEMORY_NONSHRINKABLE) as numeric(14,2))/1024/1024/1024) as numeric(14,2)) from openquery([OurLinkedServer],\'SELECT * FROM $SYSTEM.DISCOVER_OBJECT_MEMORY_USAGE\')

所以3个问题:

  1. 如何将内存使用量从 23GB 降低到 10GB?
  2. 为什么上面的查询显示 16GB 但 Azure 门户显示 23GB?
  3. 为什么完全 5GB 的模型总是会占用 10GB 的内存(即使它工作正常并且在没有人使用它的时候)?

    谢谢。

    标签: azure powerbi ssas ssas-tabular azure-analysis-services


    【解决方案1】:

    当您部署或处理模型时,它会创建一个单独的副本,然后在完成后切换到它。所有 SSAS 文档(抱歉,没有链接,但在上面搜索)都告诉您将容量调整为数据大小的 2.5 倍。如果您尝试缩小内存大小,您将生活在一个受伤的世界中。您还需要一些额外的增长能力。内存是 SSAS 性能的主要限制因素。不要吝啬。

    您可以运行报告以按列查看模型中的内存使用情况。最简单的方法是来自 DAX Studio (高级 > 查看指标)。

    高基数列将消耗最多的内存。分离日期和时间是减少基数的简单方法。如果您不需要它,最好删除 Time。 SSAS 使用运行长度编码压缩数据。这意味着 A A A B B B 将比 A B A B A B 压缩得更好。更改表的排序顺序会对消耗的内存产生巨大影响。

    【讨论】:

      猜你喜欢
      • 2019-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-14
      • 1970-01-01
      • 1970-01-01
      • 2018-07-14
      相关资源
      最近更新 更多