gro*_*all 4 ssas tabular-model
我们已经开始遇到有关刷新表格 SSAS 模型的问题。
表格 SSAS 模型中有 38 个表。
这个过程已经运行了一年多没有问题,但是现在大约一个月了,我们无法成功处理模型中的表。
如果我访问 SSAS 数据库 > 右键单击 > 处理数据库 > 选择处理默认模式,然后单击确定,这就是问题发生的时间。
它将在那里停留大约 5 分钟,然后出现错误消息:
未能将修改保存到服务器。返回错误:'没有足够的内存来完成此操作。请稍后在可能有更多可用内存时重试。
如果我尝试单独“处理”表,我也会收到相同的错误消息。
我在高级窗口中查看了 SSAS 的内存设置,并将这些值重置为默认值。所以目前的关键值(据我所知)是:
服务器已经重新启动了几次,我们仍然有同样的问题。
环境详情:
Windows Server 2016 数据中心
SQL Server 2017 (RTM-CU9-GDR) (KB4293805) - 14.0.3035.2 (X64)
SSAS 版本:14.0.223.1
服务器模式:表格
服务器内存:64Gb
SQL Server 分配的内存:28Gb
我已经在网上准备了多篇关于这些问题的文章,但到目前为止似乎没有任何相关/有用的文章。
任何指导/帮助将不胜感激。
免责声明:我不是 BI / SSAS 的人。我只是一个 DBA,他遇到了这个问题,所以如果我没有完全正确地解释这一点,请原谅我。
TL/DR:添加更多内存,减小模型的大小,和/或将 SQL Server 服务或 SQL Server 分析服务移动到不同的服务器(例如向外扩展)
更长的解释: 几个月前,我们使用我们的 Tabular SSAS 生产服务器完成了这个练习,并且实际上向 Microsoft 寻求“正式”建议,因为我们的基础设施团队对 RAM 很吝啬(我可以理解,因为它并不便宜) . 为了清楚起见,我们遇到的错误如下:
操作已被取消,因为应用程序没有足够的可用内存。如果使用 32 位版本的产品,请考虑升级到 64 位版本或增加机器上可用的内存量。
我们的服务器最初设置为 64GB 内存,并托管 2 个 SSAS 模型,总大小为 40GB。这台机器上没有托管其他 SQL Server 服务。有时我们的模型可以毫无问题地处理,但大多数时候它们会失败。我们会重新启动服务器,然后也许他们会成功……如果风恰到好处并且星星和行星都对齐。
与多维 (MOLAP/ROLAP/HOLAP) 模型不同,默认表格模型在利用内存技术时完全加载到内存中。如果模型无法完全加载到内存中,您就会遇到问题。
可悲的是,Microsoft 的文档对“内存建议”的内容进行了细分,因为我找不到任何正式文档提供除运行服务所需的“最低”级别之外的任何内容。从我们提交的支持请求中,微软的建议如下:
对于大小为 X 的模型,在 SSAS 服务器上提供 2X - 10X RAM 以供 SSAS 服务使用,这进一步受以下因素影响:
- Cube Processing 需要 2X - 3X RAM 才能进行完整处理,其中包括内置内存中模型的影子副本。
- 连接到多维数据集的用户/报告的数量也会增加 RAM 要求,有时高达 10 倍,具体取决于报告的数量、数量等。因为用户/报告可以生成执行计算或内存实现的 DAX 查询(这会导致引擎构建一个中间的非压缩结果,并可能导致内存消耗高于预期)。
- 正在处理的模型数量也会增加所需的内存占用。
- 如果该设置被禁用,则启用 VertiPaqPagingPolicy,这样 SSAS 就可以利用操作系统分页文件以牺牲处理和查询性能为代价获得额外的内存。
我们最终做的是增加服务器上的 RAM 量,这最终暂时解决了我们的问题。唯一的其他真正替代“解决方案”是限制模型中所需的数据量或横向扩展(例如将服务移动到另一台服务器)您的部署到其他服务器。
我怀疑在您的情况下发生的是您的 SSAS 服务内存不足,因为您的 SQL Server 服务也托管在同一台服务器上。基本上,您需要将这些服务彼此隔离,或者在服务器上拥有足够的 RAM 以让它们并行运行。如果可能,我强烈建议将您的 SSAS 服务隔离到不同的服务器,但许可挑战可能会影响这一点,因此请确保有足够的 RAM。
您可以处理的其他事情是位于 msmdsrv.ini 文件中的配置设置,但对于我们的场景,我们并没有取得太大的成功,这些设置对内存不足的最终结果产生了任何显着差异。
归档时间: |
|
查看次数: |
8706 次 |
最近记录: |