Azure Stack Hub 中的 App Service 伺服器角色容量規劃
若要為 Azure App Service on Azure Stack Hub 設定已可在生產環境中執行的部署,您必須規劃要讓系統支援的容量。
本文針對應用於任何生產環境部署的計算執行個體和計算 SKU 最小數目,提供指引。
注意
針對角色所建議的計算 SKU 指引已更新為 Azure App Service on Azure Stack Hub 2020.Q2 版本,以便讓標準部署與 Azure 部署一致。
您可以使用這些指導方針規劃您的 App Service 容量策略。
App Service 伺服器角色 | 建議的執行個體最小數目 | 建議的計算 SKU |
---|---|---|
控制器 | 2 | A4v2 |
前端 | 2 | A4_v2 |
管理性 | 2 | D3_v2 |
發行者 | 2 | A2_v2 |
Web 背景工作 - 共用 | 2 | A4_v2 |
Web 背景工作 - 專用 - 小型 | 每層 2 個 | A1_v2 |
Web 背景工作 - 專用 - 中型 | 每層 2 個 | A2_v2 |
Web 背景工作 - 專用 - 大型 | 每層 2 個 | A4_v2 |
控制器角色
建議的最小數目:兩個 A4v2 的執行個體
Azure App Service 控制器通常會有 CPU、記憶體和網路資源取用量不高的問題。 不過,為確保高可用性,您必須擁有兩個控制器。 兩個控制器也是允許的控制器最大數目。 您可以在部署期間直接從安裝程式建立第二個網站控制器。
前端角色
建議的最小數目:兩個 A4v_2 的執行個體
前端會根據 Web 背景工作的可用性將要求路由到 Web 背景工作。 為確保高可用性,您應該要擁有多個前端,而且可以擁有不只兩個。 若要進行容量規劃,請考慮每個核心每秒可以處理大約 100 個要求。
管理角色
建議的最小數目:兩個 D3v2 的執行個體
Azure App 傳統部署模型角色負責 App Service Azure Resource Manager 和 API 端點、入口網站擴充功能 (管理員、租用戶、Functions 入口網站),以及資料服務。 在生產環境中,管理伺服器角色通常只需要約 4 GB 的 RAM。 不過,在執行許多管理工作 (例如建立網站) 時,它可能會遇到較高的 CPU 使用量。 為確保高可用性,您應該對這個角色指派多個伺服器,而且每一部伺服器至少要有兩個核心。
發佈者角色
建議的最小數目:兩個 A2v2 的執行個體
如果同時發佈多個使用者,發佈者角色可能會遇到極高的 CPU 使用量。 為確保高可用性,請確定有多個可用的發佈者角色。 發佈者只會處理 FTP/FTPS 流量。
Web 背景工作角色
建議的最小數目:兩個 A4_v2 的執行個體
為確保高可用性,您應該擁有至少四個 Web 背景工作角色,兩個用於共用網站模式,兩個用於您計劃要提供的每個專用背景工作層。 共用和專用計算模式會提供不同層級的服務給租用戶。 如果您的客戶有下列情形,您可能需要更多 Web 背景工作角色:
- 使用專用的計算模式背景工作層 (也就是需要大量資源)。
- 在共用計算模式下執行。
在使用者為專用的計算模式 SKU 建立 App Service 方案之後,該 App Service 方案中指定的 Web 背景工作數目無法再供使用者使用。
若要在取用方案模型提供 Azure Functions 給使用者,您必須部署共用 Web 背景工作。
在決定要使用的共用 Web 背景工作角色數目時,請檢閱下列考量:
記憶體:記憶體是 Web 背景工作角色最重要的資源。 從磁碟交換虛擬記憶體時若記憶體不足,將會影響網站的效能。 每個伺服器都需要將大約 1.2 GB 的 RAM 用於作業系統。 高於此閾值的 RAM 則可用於執行網站。
使用中網站的百分比:一般而言,Azure Stack Hub 部署上的 Azure App Service 中,大約會有 5% 的應用程式是使用中狀態。 不過,任何給定時刻的使用中應用程式百分比則有高有低。 在使用中應用程式比率為 5% 時,要在 Azure App Service on Azure Stack Hub 部署中放置的應用程式最大數目應小於「20 乘上使用中網站數目 (5 x 20 = 100)」。
平均記憶體使用量:在生產環境中觀察到的應用程式記憶體使用量平均約為 70 MB。 利用此使用量,配置給所有 Web 背景工作角色電腦或 VM 的記憶體可依下列方式計算:
Number of provisioned applications * 70 MB * 5% - (number of web worker roles * 1044 MB)
例如,如果環境中有 5,000 個執行 10 個 Web 背景工作角色的應用程式,則每個 Web 背景工作角色 VM 都應該有 7060 MB 的 RAM:
5,000 * 70 * 0.05 - (10 * 1044) = 7060 (= about 7 GB)
如需關於新增更多背景工作執行個體的資訊,請參閱新增更多背景工作角色。
專用背景工作角色在升級和維護期間的其他考量
在升級和維護背景工作角色期間,Azure App Service on Azure Stack Hub 一次會對每個背景工作角色層的 20% 資源執行維護。 因此,雲端管理員一律必須讓每一背景工作層保有 20% 的未配置背景工作角色集區,來確保其租用戶不會在升級和維護期間遇到中斷服務的情形。 例如,如果您的背景工作層有 10 個背景工作,就應該確保其中有 2 個尚未配置以便能夠用於升級和維護。 如果 10 個背景工作全都配置出去,就應該相應增加背景工作層來保有未配置的背景工作集區。
在升級和維護期間,Azure App Service 會將工作負載移到未配置的背景工作,以確保工作負載會繼續運作。 但如果升級期間沒有可用的未配置背景工作,則租用戶的工作負載就有可能會停止運作。 關於共用的背景工作,客戶不需要佈建額外的背景工作,因為服務會自動在可用的背景工作內配置租用戶應用程式。 為了達到高可用性,此層內至少要有兩個背景工作。
雲端管理員可以在 Azure Stack Hub 系統管理員入口網站的 App Service 管理區域中監視其背景工作層的配置。 請瀏覽至 App Service,然後選取左窗格中的 [背景工作角色層]。 [背景工作角色層] 資料表會顯示背景工作角色層名稱、大小、使用的映像、可用背景工作角色數目 (未配置)、每層內的背景工作角色總數,以及背景工作角色層的整體狀態。
檔案伺服器角色
對於檔案伺服器角色,您可以使用獨立檔案伺服器來進行開發及測試。 例如,在 Azure Stack 開發套件 (ASDK) 上部署 Azure App Service 時,您可以使用此範本。 對於生產環境用途,則應該使用預先設定的 Windows 檔案伺服器或預先設定的非 Windows 檔案伺服器。
在生產環境中,檔案伺服器角色會遇到大量的磁碟 I/O。 該角色存放了使用者網站的所有內容與應用程式檔案,因此您應該為該角色預先設定下列其中一項資源:
- Windows 檔案伺服器
- Windows 檔案伺服器叢集
- 非 Windows 檔案伺服器
- 非 Windows 檔案伺服器叢集
- NAS (網路連接儲存裝置) 裝置
如需詳細資訊,請參閱佈建檔案伺服器。