针对数据提取查询密集型环境进行优化
本主题提供有关设置特定 Tableau Server 拓扑和配置的指导,以帮助优化和提高数据提取查询密集型环境中的性能。
什么是数据提取查询密集型环境?加载工作簿、视图和仪表板时会查询数据提取和联合数据源,从而产生大量查询工作负载。因此,如果您有大量的数据提取和联合数据源,则可以说您拥有“数据提取查询密集型环境”。
如果您的环境是上面定义的数据提取查询密集型环境,那么接下来的部分可以帮助您确定此配置是否适合您。
何时使用此配置
此配置背后的关键原因:Hyper 是 Tableau 的内存优化数据引擎技术,适用于快速数据摄取和分析处理,使其成为优化查询密集型工作负载的关键。随着数据提取使用量的增长,我们建议在 Tableau Server 群集的专用节点上配置数据引擎。此配置允许 Tableau Server 在查询数据提取时横向扩展基础结构以优化性能。
在查看使用数据提取和联合数据源的内容时,有几个因素会影响 Tableau Server 的性能。此处的目标是在服务器上查看内容时实现一致且可靠的查询性能。如果您的环境符合以下情况之一,请使用此配置:
您会发现工作簿加载时间存在很大差异,并且工作簿使用数据提取或联合数据源。
您的 Tableau Server 部署的 Creator、Explorer、Viewer(查看者)和基于数据提取的内容的数量不断增加,因此您希望有效地横向扩展。
- 如果计算机上存在文件存储,您会看到数据引擎和 VizQL Server 之间出现资源争用情况。
您分析大量数据。此配置有助于优化大数据场景中的性能,包括数据摄取和分析。若要了解有关 Tableau 和大数据的详细信息,请参见使用 Tableau 进行 Hyper-charge 大数据分析。
注意:使用服务器端性能记录来确定查询执行时间。若要确定 Tableau 的资源使用情况,请为 Windows 安装使用“性能监视器”,为 Linux 安装使用 sysstat 或 vmstat 工具。
使用此配置的好处
为数据引擎配置专用节点有以下主要好处:
专用数据引擎节点将减少数据提取查询与其他资源密集型工作负载(例如 VizQL Server 处理的工作负载)之间的资源争用。
- 数据提取查询在专用节点上动态负载平衡,并考虑系统的当前状态,以确保没有一个节点被过度使用或未充分利用。
加载依赖于数据提取的工作簿时,用户体验更加一致。这里的重点是建立一致且可靠的性能,而不是使单个查询更好。
您可以更好地控制横向扩展需要更多资源的 Tableau Server 进程。如果 VizQL Server、数据引擎和后台程序都在同一个节点上运行,并且缓慢的数据提取查询是问题所在,那么通过添加包含所有三个进程的第二个节点将很难看到性能改进。使用此配置,您可以添加更多节点来专门改进数据提取查询工作负载。
有助于提高可用性和正常运行时间。如果发生故障并且专用数据引擎节点之一不可用,VizQL Server 将尝试将问题节点上的挂起请求路由到其他专用数据引擎节点。
数据引擎可以利用计算机上尽可能多的内核。因此,您可以灵活地向专用数据引擎节点中添加更多的资源以缩短查询响应时间和减少昂贵的数据提取查询的可变性,或者添加更多专用数据引擎节点以在服务器中获得更多的数据提取查询吞吐量。
数据引擎有一个默认配置,将其限制为平均每小时使用 75% 的 CPU。这旨在帮助避免与其他 Tableau Server 进程争用。如果您在专用节点上运行数据引擎,则可以将此平均值提高到 95%。有关执行此操作的信息,请参见hyper.srm_cpu_limit_percentage。
何时不使用此配置
如果您没有遇到基于数据提取的查询负载问题,硬件资源可能会更好地分配给 Tableau Server 的其他部分。
在文件存储、数据引擎和 VizQL Server 共存的节点上,您看不到数据引擎和 VizQL Server 之间的资源争用。
在实施此配置之前,强烈建议对 VizQL Server 和随文件存储一起安装数据引擎的节点的 CPU 使用情况进行评估。
配置
此配置的主要目标是在一个或多个专用节点上拥有数据引擎。
在本地安装文件存储的部署中,这意味着在一个或多个专用节点上配置文件存储。数据引擎自动安装在与文件存储相同的节点上。
在您配置外部文件存储的部署中,您仍然可以在 Tableau Server 上的专用节点上配置数据引擎。
通过隔离 VizQL Server 和文件存储进程,数据提取查询与视图查看或交互之间的负载可得到平衡和更好的管理。此配置的目标是在查询数据提取时保持一致的性能。
下面是配置的可视化表示形式,其中数据引擎/文件存储进程有两个专用节点,即节点 5 和 6。这是一个在本地配置文件存储的示例,这就是数据引擎和文件存储进程位于同一位置的原因。
相同的配置适用于具有外部文件存储的部署,但在这种情况下,节点 5 和 6 将仅配置数据引擎。
此外,由于节点 1 还具有存储库和文件存储进程,因此执行备份所需的所有数据都存在于节点 1 上,这可以提高备份性能。
硬件指南
为了充分利用此配置,您需要尝试各种硬件规模和配置,以了解最适合您的峰值负载性能目标的配置。Hyper 是一种高性能数据库技术,影响性能的关键资源是内存、内核和存储 I/O。了解 Hyper 如何使用资源来处理查询将有助于您进行硬件选择并在不同配置之间进行推理。
内存:当为用户或后台进程处理基于数据提取的查询时,Tableau Server 会选择一个专用的数据引擎节点来处理查询。然后,该专用数据引擎节点会将数据提取从本地存储(通常是服务器硬盘)复制到内存中。拥有更多可用系统内存可以让操作系统更好地管理 Tableau 的内存使用情况。专用数据引擎节点使用系统内存来存储所执行查询的结果集。如果结果集仍然有效并且操作系统没有将其从内存中清除,则可以重用内存中的结果集。
Tableau Server 的最低硬件推荐配置是 32 GB 内存,但如果您预计基于数据提取的工作簿加载量很大,则应考虑使用 64 GB 或 128 GB。如果您遇到除内存之外的其他资源限制(如内核),与其扩展到 128 GB 内存,不如扩展到额外的 64 GB 专用数据引擎节点。
将数据提取从本地存储复制到内存的过程可能需要时间,并且可能需要优化磁盘性能。“存储 I/O”部分介绍了优化磁盘性能。
内核数:在处理基于数据提取的查询时,内核数是重要的硬件资源,可能会影响性能和可扩展性。CPU 内核负责执行查询,拥有更多可用内核将可加快执行时间。一般来说,内核数增加一倍会使查询执行时间缩短一半。例如,如果当前使用 4 个物理内核或 8 个 vCPU 完成查询需要 10 秒,那么升级到 8 个物理内核或 16 个 vCPU,则执行查询只需要 5 秒。
当前的 Tableau Server 最低硬件推荐配置是 8 核,但如果您的部署使用数据提取,请考虑使用 16 或 32 核计算机。需要注意的重要一点是,如果内存和 I/O 是您的瓶颈,那么增加可用内核数不会提高您的查询性能。
- 存储 I/O:Hyper 旨在利用数据提取存储设备的可用性能来加速查询处理。我们建议选择具有高读/写速度的快速磁盘存储,如固态硬盘 (SSD)。目前,使用 NVMe 存储协议的 SSD 提供最快的可用速度。
注意:为专用数据引擎节点调整资源大小只会影响数据提取查询性能。加载工作簿时,还涉及许多其他过程,这些过程构成了 VizQL 加载请求的总时间。例如,VizQL Server 进程负责从数据引擎获取数据并呈现可视化项。
其他性能调优和优化:
除了上述基本配置之外,您还可以使用其他功能来优化性能。下面描述的优化适用于本地文件存储和外部文件存储部署。
数据提取查询负载平衡:为了确定将数据提取查询路由到何处,数据引擎使用服务器运行状况指标 - 数据引擎消耗的资源量以及可能在同一节点上运行的其他 Tableau 进程的负载。除了评估系统资源之外,还会考虑节点上的内存中是否已存在数据提取,以确保将数据提取查询发送到具有最多可用资源的节点来处理查询。这将实现更有效的内存和磁盘利用率,并且数据提取不会跨节点在内存中重复。有关更多详细信息,请参见数据提取查询负载平衡帮助文章。
Tableau Server 2020.2 及更高版本中默认启用数据提取查询负载平衡功能。
使用节点角色优化工作负载:使用后台程序和文件存储节点角色,服务器管理员可以更灵活地控制哪些节点应该专用于运行数据提取查询和数据提取刷新。如上面的拓扑图中所述,某些数据引擎节点专用于处理数据提取查询,并且仅运行文件存储和数据引擎进程。节点角色可用于 Advanced Management。有关节点角色的详细信息,请参见通过节点角色管理工作负载。
下图使用与上述基本配置相同的拓扑,但具有节点角色。
数据提取刷新后台程序节点角色:通过将节点 3 设置为数据提取刷新后台程序节点角色,只有增量刷新、完全刷新和加密/解密作业才会在该节点上运行。通过将节点 4 设置为非数据提取刷新台程序节点角色,除数据提取刷新之外的所有后台作业都将在此节点上运行。使用联合数据提取和影子数据提取时,数据服务器和网关可帮助数据提取刷新作业。有关后台程序节点角色的详细信息,请参见文件存储节点角色。
此外,由于节点 1 还具有存储库和文件存储进程,因此执行备份所需的所有数据都存在于节点 1 上,这可以提高备份性能。
后台程序节点角色可用于 Tableau Server 2019.3 版及更高版本中的 Advanced Management。
- 数据提取查询文件存储节点角色:作为专用数据引擎节点的节点 5 和 6 具有数据提取查询文件存储节点角色,以确保它们仅处理可视化项负载、订阅和数据驱动型通知的查询。
数据提取查询交互节点角色:对于具有数据提取查询文件存储节点角色的专用数据引擎节点,服务器管理员可以进一步隔离交互式和计划工作负载以在特定的专用数据引擎节点上运行。这对于在大量订阅期间有大量用户交互和加载工作簿的时候很有用。例如,假设有 1000 个订阅安排在星期一早上 8 点。与此同时,许多用户也在一天开始时加载仪表板。订阅量和用户查询量的组合可能会导致用户体验到更慢、更多变的工作簿加载时间。使用数据提取查询交互式文件存储节点角色,您可以指定专用数据引擎节点仅接受交互式用户(正在等待查看屏幕的用户)的查询。这些优先用于交互式工作负载的专用数据引擎节点将免受大量竞争订阅作业的影响,并提供更一致的查询时间。此外,服务器管理员可以使用此节点角色来更好地规划增长,因为他们可以独立地为交互式和计划工作负载添加专用数据引擎节点。有关详细信息,请参见文件存储节点角色。
文件存储节点角色可用于 Tableau Server 2020.4 版及更高版本中的 Advanced Management。
使用外部文件存储优化:此功能允许您使用网络共享作为文件存储的存储,而不是使用 Tableau Server 节点上的本地磁盘。通过将存储集中在一个位置,您可以显着减少在文件存储节点之间复制数据所花费的网络流量。例如,在文件存储使用本地磁盘的情况下,当使用本地文件存储刷新 1 GB 数据提取时,1 GB 数据将通过网络复制到运行文件存储进程的所有节点。在 Tableau Server 配置有外部文件存储的情况下,1 GB 数据提取只需复制到网络共享一次,所有文件存储节点都可以访问该单个副本。存储的集中化还减少了文件存储节点上所需的本地存储总量。
此外,Tableau Server 备份可利用快照技术显着减少完成备份的时间。
虽然您不需要专用的数据引擎节点配置来获得外部文件存储的好处,但可以一起使用具有文件存储节点角色和数据提取查询交互式节点角色的附加工作负载管理功能。有关更多详细信息,请参见Tableau Server 外部文件存储主题。
Tableau Server 2020.1 及更高版本中的 Advanced Management 提供外部文件存储。