最佳化效能和功能
將最佳大小、網路和管理做法納入 Azure Linux VM 部署計畫之後,請考慮效能和功能。 本單元說明如何最佳化 Azure Linux VM 部署的網路和儲存體資源。
將網路效能最佳化
若要最佳化 Azure Linux VM 的網路效能,您可以使用核心型網路最佳化,並在可用時實作加速網路。
核心型網路最佳化
2017 年 9 月之後發行的 Linux 核心包含網路最佳化選項,可讓 Azure Linux VM 達到更高的網路輸送量。 您可以使用最新的 Linux 核心來獲得顯著的輸送量效能。
安裝最新的 Linux Integration Services (LIS) 可為全新及現有的 Azure VM 帶來好處。 輸送量最佳化從 4.2 版開始即為 LIS 的一部分,後續版本提供進一步的改善。
加速網路
您可以實作加速網路,以將延遲降到最低、輸送量最大化,並降低 CPU 使用率。 加速網路使用主機硬體的單一根 I/O 虛擬化 (SR-IOV) 功能來改善網路效能。
如不使用加速網路,所有進出 VM 的網路流量皆必須經過主機和虛擬交換器。 如果使用加速網路,先送達 VM 網路介面的網路流量就會直接轉送到 VM 而不必經過主機。
加速網路僅適用於啟用加速網路的 VM。 為了獲得最佳結果,請在連線到相同虛擬網路的 Azure VM 上啟用此功能。 在透過虛擬網路通訊或處於混合環境的情況下,此功能對整體延遲的影響可以降到最低。
大多數一般用途和具有 2 個以上 vCPU 的計算最佳化執行個體大小,Azure 皆支援加速網路。 在具有四個或更多 vCPU 的執行個體上,使用超執行緒的 VM 執行個體支援加速網路。
將儲存體效能最佳化
每個 Azure Linux VM 至少有下列兩個虛擬磁碟:
標示為
/dev/sda
的作業系統磁碟,最大容量為 2 TiB 的主開機記錄 (MBR) 格式,或 4 TiB 的 GUID 磁碟分割表格 (GPT) 格式。 您用來佈建 Azure VM 的映像會決定預設大小。請避免在作業系統磁碟上儲存資料和安裝應用程式,因為其已針對快速開機進行最佳化,而非執行非 OS 工作負載。
標示為
/dev/sdb
並掛接至/mnt
的暫存磁碟會提供暫存儲存體。 磁碟的大小和效能取決於 VM 大小,其主要目的是儲存分頁檔。暫存磁碟將作為可捨棄或可輕鬆重新建立資料的短期儲存體。 請勿使用暫存磁碟來儲存必須在調整大小、重新部署或重新啟動等作業之間保存的檔案。
若要為分頁檔實作最佳組態,請針對支援的映像使用 cloud-init。 若為不支援 cloud-init 的映像,請使用 Azure VM Linux 代理程式。
虛擬資料磁碟
若要儲存資料和安裝應用程式,您可以建立虛擬磁碟、將其連結至 Azure VM,並掛接在作業系統內。 您可以根據您的儲存體和每秒輸入/輸出 (IOPS) 需求,視需要新增更多磁碟。 請記住以下考量:
- 您可以連結至 Azure VM 的磁碟數目上限取決於 VM 大小。
- Azure VM 支援的 IOPS 數目上限不僅取決於其磁碟的彙總輸送量,也取決於由 VM 大小決定的 IOPS 輸送量 VM 上限。 有效輸送量是兩者中較低的值。
若要提供 Azure VM 的儲存體,您可以使用 Azure 管理的區塊層級存放磁碟區。 Azure 受控磁碟支援下列五種磁碟類型,可解決特定客戶案例:
- Ultra 磁碟適用於需要大量 I/O 的工作負載,例如 SAP HANA、頂層資料庫如 SQL 和 Oracle,以及其他大量異動的工作負載。
- 進階固態硬碟 (SSDs) v2 適用於需要持續低延遲、高 IOPS 和高輸送量的生產與效能敏感工作負載。
- 進階 SSD 適用於實際執行環境與著重效能的工作負載。
- 標準 SSD 適用於網頁伺服器、輕量型企業應用程式,以及開發或測試案例。
- 標準硬碟 (HDD) 適用於使用不常存取的備份和非關鍵資料。
進階 SSD 的寫入屏障
若要在快取設定為 ReadOnly
或 None
的進階 SSD 磁碟上達到最高的 IOPS,請在 Linux 中掛接檔案系統時停用屏障。 您不需要屏障,因為這些快取設定的進階儲存體磁碟寫入都很耐久。 如果快取設定為 Read/Write
,請保留啟用屏障以確保寫入持久性。
- 如果您使用 reiserFS 檔案系統,請使用掛接選項
barrier=none
來停用屏障。 - 如果您使用 ext3/ext4,請使用掛接選項
barrier=0
來停用屏障。 - 如果您使用 XFS,請使用掛接選項
nobarrier
來停用屏障。
進階 SSD 的 I/O 排程演算法
Linux 核心提供兩組磁碟 I/O 排程器來重新排序要求:一個用於較舊的 blk
子系統,另一個則用於較新的 blk-mq
子系統。 針對 Azure 進階儲存體磁碟,請使用會將排程決策傳遞至基礎虛擬化平台的排程器。
- 針對使用
blk
子系統的 Linux 核心,選擇noop
排程器。 - 針對使用
blk-mq
子系統的 Linux 核心,選擇none
排程器。
多磁碟設定
如果您的工作負載需要比單一磁碟更多的 IOPS,請使用結合多個磁碟的獨立磁碟容錯陣列 (RAID) 設定。 Azure 會在儲存體網狀架構層提供磁碟復原功能,所以您可以藉由實作 RAID-0 等量來專注於效能。
或者,您也可以安裝邏輯磁碟區管理員 (LVM) ,並用其來將多個虛擬磁碟合併成單一等量邏輯儲存體磁碟區。 在此設定中,讀取和寫入會散發到磁碟區群組 (類似 RAID-0) 中包含的多個磁碟。 基於效能考量,您可能希望建立等量邏輯磁碟區,如此一來,就能使用您所有已連結的資料磁碟進行讀取及寫入。