從搭配 Service Pack 1 的 HPC Pack 2008 R2 開始,Windows HPC 叢集管理員和開發人員可以在 Azure 中視需要新增計算資源來增加內部部署叢集的威力。 此 HPC 叢集「高載」案例與 Azure 背景工作角色實例可啟用較大的 HPC 工作負載,有時除了或取代內部部署叢集資源外,還需要數千個核心。 本主題提供指引和最佳做法建議,以協助規劃和實作來自內部部署 HPC Pack 叢集的大型 Azure 節點部署。 這些建議的最佳做法應該有助於將 Azure 部署逾時、部署失敗和即時實例遺失的情況降到最低。
備註
- 這些最佳做法包括 Azure 環境和內部部署前端節點設定的建議。 大部分的建議也會改善 Azure 節點較小部署的行為。 這些指導方針的例外狀況是測試部署,其中前端節點服務的效能和可靠性可能不是關鍵且非常小的部署,其中前端節點服務不會受到高度壓力。
- 針對大型 Azure 部署設定內部部署前端節點的許多考慮也適用於包含相當大量內部部署計算節點的叢集。
- 這些建議會補充叢集、網路和其他需求,以將 Azure 節點新增至 Windows HPC 叢集。 如需詳細資訊,請參閱 Azure 節點的需求。
- 這些一般建議可能會隨著時間而變更,而且可能需要調整 HPC 工作負載。
適用於 .NET 的 HPC Pack 和 Azure SDK 版本
這些建議通常以 HPC Pack 2012 R2 和 HPC Pack 2012 為基礎,但它們也適用於使用 HPC Pack 2008 R2 執行的大型部署。
下表列出 HPC Pack 的版本,以及適用於 .NET 的 Azure SDK 相關版本。
| HPC Pack 高性能計算套件 | Azure SDK |
|---|---|
| HPC Pack 2012 R2 | Azure SDK for .NET 2.2 |
| HPC Pack 2012 Service Pack 1 (SP1) | Azure SDK for .NET 2.0 |
| HPC Pack 2012 | Azure SDK for .NET 1.8 |
| HPC Pack 2008 R2 with Service Pack 4 (SP4) | Azure SDK for .NET 1.7 |
| HPC Pack 2008 R2 with Service Pack 3 (SP3) | 適用於 .NET 1.6 的 Azure SDK |
Azure 節點大型部署的臨界值
HPC 叢集的 Azure 節點部署會被視為「大型」,因為它需要考慮前端節點的設定,以及何時部署需要大量 Azure 叢集的資源,以供單一雲端服務使用。 較大的部署可能會有部署逾時和遺失即時實例的風險。
這很重要
每個 Azure 訂用帳戶都會配置核心和其他資源的配額,這也會影響您部署大量 Azure 節點的能力。 若要能夠部署大量的 Azure 節點,您可能必須先連絡Microsoft支持人員,以要求訂用帳戶的核心配額增加。 請注意,配額是信用額度限制,而不是資源可用性的保證。
下表列出在單一雲端服務中大量部署 Azure 節點時,常用角色實例的實際臨界值數目。 閾值取決於為 Azure 角色實例選擇的虛擬機器大小(在 Azure 中預先定義)。
| 角色實例大小 | 角色實例數目 |
|---|---|
| A9 (從 HPC Pack 2012 R2 開始支援) | 125 |
| A8 (從 HPC Pack 2012 R2 開始支援) | 250 |
| A7 (從 HPC Pack 2012 SP1 開始支援) | 250 |
| A6 (從 HPC Pack 2012 SP1 開始支援) | 250 |
| 超大型 | 250 |
| 大型 | 500 |
| 中等 | 800 |
| 小 | 1000 |
如需每個虛擬機大小的詳細資訊,包括每個大小的 CPU 核心數目和記憶體,請參閱 雲端服務的大小。
若要在一個可靠性較高的服務中部署超過這些臨界值數目的角色實例,通常需要 Azure 作業小組的手動介入。 若要起始這項作業,請連絡您的Microsoft銷售代表、Microsoft頂級支援帳戶經理或Microsoft支持人員。 如需支援方案的詳細資訊,請參閱 Azure 支援。
雖然沒有適用於所有 Azure 節點部署的硬性強制限制,但每個雲端服務 1000 個實例是實際生產限制。
針對大型部署使用 Azure 的最佳做法
以下是成功建立和使用大型 Azure 部署與 HPC 叢集的一般指導方針。
為 Azure 作業小組提供早期訊號
除非您已安排在資料中心內部署至專用的 Azure 叢集,否則最重要的建議是事先將大量容量的需求傳達給 Azure 作業小組(透過Microsoft支援通道),並據此規劃部署,以消除容量作為瓶頸。 這也是取得本主題所描述之部署策略以外的其他指引的機會。
將部署分散到多個雲端服務
基於下列原因,建議您使用多個雲端服務,將大型部署分割成數個較小的部署:
允許啟動和停止節點群組的彈性。
若要在作業完成之後停止閑置實例。
為了協助在 Azure 叢集中尋找可用的節點,特別是在使用超大型實例時。
若要讓多個 Azure 資料中心用於災害復原或商務持續性案例。
雲端服務的大小沒有固定限制,但一般指引小於500到700個虛擬機實例,或少於1000個核心。 較大的部署可能會造成部署逾時、實時實例遺失,以及虛擬IP位址交換的問題。
整體而言,單一 HPC 叢集所測試的雲端服務數目上限為 32。
備註
您可能會在可透過 HPC Pack 或 Azure 管理入口網站管理的雲端服務和角色實例數目上遇到限制。
具有位置的彈性
與其他服務和其他地理需求的相依性可能不可避免,但如果 Azure 部署未繫結至特定區域或地理位置,可能會有所説明。 不過,除非您在這些地理區域中有外部相依性,否則不建議在不同的地理區域中放置多個部署,或除非您具有高可用性和災害復原需求。
使用虛擬機大小具有彈性
在特定虛擬機大小上擁有嚴格的相依性(例如,「超大型」,可能會影響大規模部署的成功。 彈性地調整或甚至混合比對虛擬機大小,以平衡實例計數和核心可有所説明。
針對節點部署使用多個 Azure 記憶體帳戶
建議針對同時進行大型 Azure 節點部署和自定義應用程式使用不同的 Azure 記憶體帳戶。 對於受 I/O 限制的特定應用程式,請使用數個記憶體帳戶。 此外,最佳做法是,用於 Azure 節點部署的記憶體帳戶不應用於節點布建以外的用途。 例如,如果您打算使用 Azure 記憶體來回移動作業和工作數據,或從前端節點或從 Azure 節點來回移動作業和工作數據,請針對該目的設定個別的記憶體帳戶。
備註
您可以針對儲存的數據總量和 Azure 記憶體帳戶上的記憶體交易產生費用,與 Azure 記憶體帳戶的數目無關。 不過,每個訂用帳戶都會限制記憶體帳戶的總數。 如果您需要訂用帳戶中的其他記憶體帳戶,請連絡 Azure 支援。
調整 Proxy 節點實例數目以支援部署
Proxy 節點是 Azure 背景工作角色實例,會從 HPC 叢集自動新增至每個 Azure 節點部署,以利內部部署前端節點與 Azure 節點之間的通訊。 Proxy 節點上的資源需求取決於部署在 Azure 中的節點數目,以及在這些節點上執行的作業。 您通常應該增加大型 Azure 部署中的 Proxy 節點數目。
備註
- Proxy 角色實例會隨著 Azure 節點實例一起在 Azure 中產生費用。
- Proxy 角色實例會取用配置給訂用帳戶的核心,並減少可用來部署 Azure 節點的核心數目。
HPC Pack 2012 引進了 HPC 管理工具,讓您設定每個 Azure 節點部署 (雲端服務) 中的 Proxy 節點數目。 (在 HPC Pack 2008 R2 中,每個部署會自動設定 2 個 Proxy 節點的數目。Proxy 節點的角色實例數目也可以使用 Azure 管理入口網站中的工具相應增加或減少,而不需重新部署節點。 單一部署的建議 Proxy 節點數目上限為 10。
較大型或大量使用的部署可能需要比下表所列的 Proxy 節點數目還要多,這以低於 50% 的 CPU 使用率和低於配額的頻寬為基礎。
| 每個雲端服務的 Azure 節點 | Proxy 節點數目 |
|---|---|
| <100 | 2 |
| 100 - 400 | 3 |
| 400 - 800 | 4 |
| 800 - 1000 | 5 |
如需 Proxy 節點組態選項的詳細資訊,請參閱 設定 Azure Proxy 節點的數目。
設定大型部署前端節點的最佳做法
Azure 節點的大型部署可能會對叢集的前端節點(或前端節點)提出重大需求。 前端節點會執行數項工作以支援部署:
存取在 Azure 部署中建立的 Proxy 節點實例,以促進與 Azure 節點的通訊(請參閱本主題中的 調整 Proxy 節點實例數目以支援部署)。
存取 Blob 的 Azure 記憶體帳戶(例如運行時間套件)、佇列和數據表數據。
管理活動訊號間隔和回應、Proxy 數目(從 HPC Pack 2012 開始)、部署數目和節點數目。
隨著 Azure 部署的大小和輸送量增加,HPC 叢集前端節點的壓力會增加。 一般而言,確保前端節點可支援部署所需的重要元素如下:
足夠的 RAM
足夠的磁碟空間
HPC 叢集資料庫的適當大小、維護良好的 SQL Server 資料庫
前端節點的硬體規格
以下是前端節點支援大型 Azure 部署的最低規格:
8 個 CPU 核心
2 個磁碟
16 GB 的 RAM
設定遠端 SQL Server 資料庫
對於大型部署,我們建議您在執行 Microsoft SQL Server 的遠端伺服器上安裝叢集資料庫,而不是在前端節點上安裝叢集資料庫。 如需選取和設定叢集 SQL Server 版本的一般指導方針,請參閱 Microsoft HPC Pack 的資料庫容量規劃和調整。
請勿設定其他叢集角色的前端節點
作為大部分生產部署的一般最佳做法,我們建議前端節點未設定為額外的叢集角色(計算節點角色或 WCF 訊息代理程序節點角色)。 讓前端節點有一個以上的用途,可能會導致它無法順利執行其主要管理角色。 若要變更前端節點所執行的角色,請先在 HPC 叢集管理員中使用 資源管理 中的動作來讓節點離線(在 HPC 叢集管理員的某些版本中稱為 「節點管理 」。 然後,以滑鼠右鍵按兩下前端節點,然後按下 [ 變更角色]。
此外,將叢集記憶體從前端節點移出,可確保前端節點不會用盡空間,而且會有效運作。
使用 HPC 用戶端公用程式從遠端連線到前端節點
當前端節點在負載過重的情況下運作時,其效能可能會受到許多使用者與遠端桌面連線的負面影響。 用戶和系統管理員不應該使用遠端桌面服務 (RDS) 連線到前端節點,而是應該在其工作站上安裝 HPC Pack 用戶端公用程式,並使用這些遠端工具存取叢集。
停用性能計數器集合和事件轉送
對於大型部署,性能計數器集合和事件轉送可能會給 HPC Management Service 和 SQL Server 帶來很大的負擔。 針對這些部署,建議您使用 HPC 叢集管理工具來停用這些功能。 例如,使用 Set-HpcClusterProperty HPC PowerShell Cmdlet,將 CollectCounters 叢集屬性設定為 false。 改善效能和收集計量之間可能會有取捨,可協助您針對所發生的問題進行疑難解答。
停用不需要的前端節點服務
若要確保作系統的硬體使用量降到最低,而且作為一般 HPC 叢集最佳做法,請停用 HPC 叢集作業不需要的任何作系統服務。 我們特別鼓勵停用任何可能已啟用的桌面導向功能。
請勿在前端節點上執行 NAT
雖然 HPC Pack 允許快速設定前端節點上執行的路由和遠端存取服務 (RRAS),以提供網路位址轉換 (NAT),並允許計算節點連線到企業網路,這可能會使前端節點成為網路頻寬的重大瓶頸,也可能會影響其效能。 對於計算節點與公用網路之間具有大量流量的大型部署或部署,我們建議使用下列其中一個替代方法:
提供每個計算節點的直接公用網路連線。
提供專用的 NAT 路由器,例如執行 Windows Server作系統的個別伺服器,以及兩個網路上的雙重主應用程式,以及執行 RRAS。
確保已完成作業的合理儲存期間
cluscfg 命令和 Set-HpcClusterProperty HPC Cmdlet 的 TtlCompletedJobs 屬性可控制 HPC 叢集的 SQL Server 資料庫中剩餘的作業時間長度。 設定這個屬性的大型值可確保在系統中維護作業資訊很長一段時間,這在報告用途上可能很理想。 不過,系統中大量的作業會增加系統的記憶體和記憶體需求,因為資料庫(以及針對它的查詢)通常會較大。
在標示節點無法連線之前,先設定合理的遺漏活動訊號數目
HPC Pack 會使用活動訊號來驗證節點可用性。 HPC 作業排程器服務對這個定期健康情況探查的回應不足,會判斷節點是否會標示為無法連線。 藉由在 HPC 叢集管理員的作業排程器設定中設定活動訊號選項,或使用 cluscfg 命令或 Set-HpcClusterProperty HPC Cmdlet,叢集管理員可以設定活動訊號 (HeartbeatInterval) 的頻率,以及節點在標示為無法連線之前會遺漏的活動訊號數目。 例如,當叢集包含大型 Azure 部署時,預設 活動訊號Interval 30 秒可能會增加到 2 分鐘。 默認 InactivityCount 設定為 3,適用於某些內部部署部署,但在部署 Azure 節點時,它應該增加到 10 個以上。
備註
從 HPC Pack 2012 SP1 開始,遺漏的活動訊號數目會針對內部部署節點和 Azure 節點個別設定。 InactivityCountAzure 叢集屬性會設定遺漏的活動訊號數目,之後叢集會將部署在 Azure 中的背景工作節點視為無法連線。 InactivityCountAzure 的預設值設定為 10。 從 HPC Pack 2012 SP1 開始, InactivityCount 屬性會獨佔套用至內部部署節點。
如果前端節點或 WCF 訊息代理程式節點設定為故障轉移叢集中的高可用性,您也應該考慮每個故障轉移叢集電腦用來監視故障轉移叢集中其他電腦(或計算機)可用性的活動訊號。 根據預設,如果計算機遺漏五個活動訊號,每秒一次,該計算機的通訊就會被視為失敗。 您可以使用故障轉移叢集管理員來降低活動訊號的頻率,或在具有大型 Azure 部署的叢集中增加遺漏的活動訊號數目。
如果您在 Azure 節點上執行服務導向架構 (SOA) 作業,您可能需要調整服務註冊檔案中的監視逾時設定來管理大型會話。 如需SOA服務組態檔的詳細資訊,請參閱 Windows HPC Server 2008 R2 中的SOA服務組態檔。
設定登錄機碼以改善檔案暫存作業的效能
從 HPC Pack 2008 R2 搭配 SP2 開始,您可以在前端節點電腦上設定登錄機碼,以改善診斷測試、 clusrun 作業和 Azure 節點大型部署上的 hpcfile 公用程式效能。 若要這樣做,請在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HPC中新增名為 FileStagingMaxConcurrentCalls 的新 DWORD 值。 建議您設定介於 50 個% 到 100 個之間值,% 您打算部署的 Azure 節點數目。 若要完成設定,設定 FileStagingMaxConcurrentCalls 值之後,您必須停止再重新啟動 HPC 作業排程器服務。
謹慎
不正確地編輯登錄可能會對系統造成嚴重的損害。 變更登錄之前,您應該先備份電腦所有的重要資料。
另請參閱
使用 Microsoft HPC Pack 高載至 Azure 背景工作實例
Azure 雲端服務上 Large-Scale 服務的最佳做法
Windows Azure 商務持續性技術指引