Sir*_*lot 8 data-warehouse sql-server windows-server sql-server-2016
我正在尝试为我们计划的数据仓库升级编写数据仓库服务器的规范。
当我们在 VMWare 主机上运行虚拟服务器时,我们能够根据需要添加或删除资源。过去,我们根据需要逐步添加 RAM 和 CPU。随着我们需求的增加,我们已经游说获得更多资源。(主要是磁盘和 RAM)。
我们要求更多。他们给我们尽可能少。
然而,最近每当我们谈论资源时,我们都会因为没有首先正确指定机器而受到批评,现在我被告知开发主机已用完,没有更多可用的 RAM。
我们是一个小型的地方政府组织,拥有约 50 名 DW 的常规用户。在正常的日常使用中,它运行良好。我们获得了良好的 mdx 查询性能,并且我们的报告和仪表板速度很快。用户很高兴。
然而,我们的 ETL 过程整夜运行,当同时处理数据集市时,我们开始看到内存压力的迹象。昨晚 SSIS 因“内存不足错误”的警告而失败。
我们现有的 DW 服务器是 Win 2008 R2,带有 4 个 CPU 和 16Gb 的 RAM,运行 SQL 2012 Std。我将最大服务器内存设置为 12GB,为操作系统和服务等留出 4GB。我们现有的 DW 有 3 个数据集市/OLAP 多维数据集,我们正在开发另外 2 个。
+----------+----------+---------------+-----------+---------------+
| Datamart | Files GB | Fact (Rows) | Fact (Mb) | ETL & Process |
| OLAP cube| | | | Time (hours) |
+----------+----------+---------------+-----------+---------------+
| PBI | 3 | 190,000 | 180 | 0.2 |
| FBI | 30 | 26,100,000 | 10,000 | 1.5 |
| RBI | 175 | 62,000,000 | 32,000 | 8.3 |
| ABI* | 100 | 44,050,000 | 21,000 | 4.0 |
| EBI* | 11 | 100,000,000 | 6,000 | 2.0 |
+----------+----------+---------------+-----------+---------------+
* Planned/Estimated
Run Code Online (Sandbox Code Playgroud)
我们的新服务器计划是运行 SQL 2016 Enterprise 的 Win 2012。它将运行 SQL、SSIS、SSRS 和 SSAS。存储不是问题,但我不确定 RAM 和 CPU。
根据SQL Server 2012的快速跟踪数据仓库参考指南,对于 2 插槽机器,我应该拥有的最小值为 128Gb ......这似乎有点过分。安装 SQL Server 2016的硬件和软件要求建议SQL 2016至少使用 4Gb 的 RAM。这是一个很大的不同!
那么.. 一个好的起点是什么?32Gb?64Gb?我如何向 IT 证明我的起始位置(规范)是合理的?
是否有关于如何计算服务器资源的好指南?
有什么好的经验法则吗?
在 DW 上下文中调整 RAM 大小的关键因素/指标是什么?
很好的问题,几年前我在 TechEd 上做了一个名为“构建最快的 SQL 服务器”的会议:
https://channel9.msdn.com/Events/TechEd/NorthAmerica/2012/DBI328
在其中,我解释了对于数据仓库,您需要能够以足够快的速度提供数据以供 SQL Server 使用的存储。Microsoft 构建了一系列名为 Fast Track Data Warehouse Reference Architecture 的白皮书,其中详细介绍了硬件细节,但基本思想是您的存储需要能够在每个 CPU 内核中提供 200-300MB/秒的顺序读取性能。以保持 CPU 忙碌。
可以缓存在内存中的数据越多,存储的速度就越慢。但是您的内存少于缓存您正在处理的事实表所需的内存,因此存储速度变得非常重要。
以下是您的后续步骤:
假设您有一个 200GB 的数据库正在处理,但您无法获得足够的存储吞吐量来保持核心繁忙。不仅需要 200GB 的 RAM,而且需要更多 RAM 并不是不可想象的 - 因为毕竟,SSIS 和 SSAS 确实希望在内存中完成它们的工作,因此您必须拥有可用的引擎数据,以及 SSIS 和 SSAS 的工作空间。
这也是人们试图将 SSIS 和 SSAS 分离到不同虚拟机上的原因——它们都同时需要内存。
| 归档时间: |
|
| 查看次数: |
23491 次 |
| 最近记录: |