對擷取查詢密集型環境進行最佳化

本主題提供有關設定特定 Tableau Server 拓撲和組態的指導,以幫助最佳化和提高擷取查詢密集型環境中的效能。

何謂擷取查詢密集型環境?載入工作簿、檢視和儀表板時會查詢擷取和同盟資料來源,從而產生大量查詢工作負載。因此,若您具有大量的擷取和同盟資料來源,則可以說您擁有「擷取查詢密集型環境」。

若您的環境是上述定義的擷取查詢密集型環境,那麼接下來的幾節可幫助您確定此設定是否適合您。

何時使用此設定

此設定背後的關鍵原因:Hyper 是 Tableau 的記憶體最佳化資料引擎技術,適用於快速資料擷取和分析處理,使其成為最佳化查詢密集型工作負載的關鍵。隨著擷取使用量的增長,我們建議在 Tableau Server 叢集的專用節點上設定資料引擎。此設定允許 Tableau Server 在查詢擷取時擴充基礎結構,以最佳化效能。

在檢視使用擷取和同盟資料來源的內容時,有幾個因素會影響 Tableau Server 的效能。此處的目標是在伺服器上檢視內容時實現一致且可靠的查詢效能。若以下條件之一適用於您的環境,請使用此設定:

  • 您發現工作簿載入時間存在很大差異,並且工作簿使用擷取或同盟資料來源。

  • Tableau Server 部署的 Creator、Explorer、Viewer 和基於擷取內容的數量不斷增加,因此您希望有效地進行擴充。

  • 當電腦上存在檔案存放區時,您看到資料引擎和 VizQL Server 之間出現資源爭用情況。
  • 您需要分析大量資料。此設定有助於最佳化巨量資料情境中的效能,包括擷取和分析。要瞭解有關 Tableau 和巨量資料的更多資訊,請參閱使用 Tableau 進行超負荷巨量資料分析

附註:請使用伺服器端效能記錄來確定查詢執行時間。若要確定 Tableau 的資源使用量,對於 Windows 安裝,請使用效能監視器,對於 Linux 安裝,請使用 sysstatvmstat 工具。

使用此設定的益處

以下是為資料引擎設定專用節點的主要益處:

  • 專用資料引擎節點將減少擷取查詢與其他資源密集型工作負載(例如,VizQL Server 處理的工作負載)之間的資源爭用情況。

  • 擷取查詢會在專用節點上實現動態負載平衡,並考慮系統的目前狀態,以確保沒有任何一個節點過度使用或使用不足。
  • 載入依賴於擷取的工作簿時,使用者體驗的效能會更加一致。這裡的重點是建立一致且可靠的效能,而不是改善單個查詢。

  • 對於擴充需要更多資源的 Tableau Server 流程,您可以有更多控制權限。若 VizQL Server、資料引擎和背景程式都在同一個節點上執行,並且存在擷取查詢緩慢的問題,那麼即使為這三個流程新增第二個節點,也很難改善效能。透過此設定,可以新增更多節點來專門改善擷取查詢工作負載。

  • 有助於改善可用性和運作時間。若發生故障並且任一專用資料引擎節點不可用,VizQL Server 將嘗試將問題節點上的擱置請求路由到其他專用資料引擎節點。

  • 資料引擎會盡可能多地利用電腦上可用的核心。因此,您可以靈活地向專用資料引擎節點新增更多資源,以減少查詢回應時間和昂貴的擷取查詢的可變性,或者新增更多專用資料引擎節點,以提高伺服器中的擷取查詢輸送量。

  • 資料引擎具有預設設定,將其每小時平均 CPU 使用率限制為 75%。這旨在幫助避免出現與其他 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 設定為 extract-refreshes 背景程式節點角色,在此節點中只會執行增量重新整理、完全重新整理和加密/解密作業。通過將節點 4 設定為 no-extract-refreshes 背景程式節點角色,則在此節點中會執行除擷取重新整理之外的所有背景工作。使用同盟和影子擷取時,資料伺服器和閘道有助於擷取重新整理工作。有關背景程式節點角色的更多資訊,請參閱檔案存放區節點角色

    此外,由於節點 1 還具有存放庫和檔案存放區流程,因此執行備份所需的所有資料都存在於節點 1 上,這可以提高備份效能。

    Tableau Server 版本 2019.3 及更高版本中的 Advanced Management 中提供背景程式節點角色。

  • 擷取查詢檔案存放區節點角色:作為專用資料引擎節點的節點 5 和 6 具有extract-queries 檔案存放區節點角色,以確保它們僅處理針對 viz 加載、訂閱和資料驅動型通知的查詢。
  • 擷取查詢互動式檔案存放區節點角色:對於擁有 extract-queries 檔案存放區節點角色的專用資料引擎,伺服器管理員可以進一步隔離互動和排程的工作負載,以便特定的專用資料引擎節點中執行。這對於在大量訂閱期間有大量使用者互動和載入工作簿時很有用。例如,假設有 1000 個訂閱排定在週一早上 8 點進行。與此同時,許多使用者也在一天開始時載入儀表板。訂閱和使用者查詢的組合量可能讓使用者遭遇更慢、更可變的工作簿載入時間。您可以透過 extract-queries-interactive 檔案存放區節點角色,指定專用資料引擎節點僅接受互動使用者(正在查看螢幕並等待的使用者)的查詢。這些優先用於互動工作負載的專用資料引擎節點將免受大量相互競爭訂閱作業的影響,並提供更一致的查詢時間。此外,伺服器管理員可以使用此節點角色來更好地規劃增量,因為他們可以獨立地為互動和排程工作負載新增專用資料引擎節點。有關更多資訊,請參閱檔案存放區節點角色

    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 中可用。

     

感謝您的意見反應!已成功提交您的意見回饋。謝謝!