快取對 Azure 中磁碟效能產生的影響

已完成

虛擬機器與您的本機電腦很相似,其效能通常會直接關係到 VM 讀取和寫入資料的速度。 若要瞭解如何改善該效能,我們必須先瞭解效能的測量方式。 我們也必須了解影響該測量的設定和選擇。

我們會特別查看 VM 使用的基本磁碟和儲存體。 當您查看效能時,請記住,您也必須考慮應用層。 例如,如果您要在 VM 中執行資料庫,則想要查看資料庫特定的效能設定,以確保資料庫已針對執行它的 VM 和記憶體進行優化。

一開始我們先定義幾個字詞,以及 Azure 應在這些字詞上實行的保證。

每秒的 I/O 作業數

您選取的記憶體類型(標準或 進階版)決定磁碟的速度。 我們會以每秒的 I/O 作業數或 IOPS (念成 "eye-ops"),來測量此效能。

IOPS 是磁碟可以在一秒內處理的要求數目。 單一要求是指一次的讀取或寫入作業。 此測量方式會直接套用至儲存體。 例如,如果您有一個可以執行 5000 IOPS 的磁碟,這表示它理論上能夠每秒處理 5,000 個讀取和或寫入作業。

注意

外部因素 (包括延遲) 可能會影響 IOPS。

IOPS 會直接影響您的應用程式效能。 某些應用程式 (例如零售網站) 需要高 IOPS 來處理所有小型和隨機的 I/O 要求,這些要求必須快速處理,才能讓網站保持在可回應的狀態。

Azure 中的 IOPS

當您將進階儲存體磁碟連結至高延展性 VM 時,Azure 會根據磁碟規格,保證佈建一定數量的 IOPS。 例如,P50 磁碟會佈建 7500 IOPS。 每個高延展性 VM 大小也有它可承受的特定 IOPS 限制。 例如,標準 GS5 VM 以 80,000 IOPS 為限。

IOPS 是磁碟的效能測量;然而,這是一個 理論 限制。 其他兩個因素可能會影響實際應用程式的效能:輸送輛延遲

什麼是輸送量?

輸送量是指應用程式在指定間隔內 (通常是每秒) 傳送到儲存體磁碟的資料量。 如果您的應用程式正在執行大型資料區塊的 I/O,則需要高輸送量。

Azure 會根據進階儲存體磁碟的規格來佈建該磁碟中的輸送量。 例如,P50 磁碟會佈建每秒 250 MB 的磁碟輸送量。 每個高延展性 VM 大小也有它可承受的特定輸送量限制。 例如,標準 GS5 VM 的輸送量上限為每秒 2,000 MB

IOPS 和輸送量

輸送量和 IOPS 具有直接關聯性,而變更一個對另一個則有直接影響。 若要取得輸送量在理論上的限制,您可以使用公式:IOPS x I/O size = throughput。 規劃您的應用程式時,請務必考兩這兩個值。

什麼是延遲?

讀取和寫入資料都需要時間。 延遲 是您的應用程式將要求傳送至磁碟並取得回應所花費的時間。 基本上,延遲會讓我們知道處理單次讀取或寫入 I/O 要求需要多少時間。

延遲會對 IOPS 造成限制。 例如,如果我們的磁碟可以處理 5000 IOPS,但每個作業需要 10 毫秒來處理,則應用程式會因為處理時間而限制為每秒 500 個作業。 此範例是簡單的圖例;大部分時間延遲會大幅降低。 最後,延遲和輸送量會決定您的應用程式處理記憶體數據的速度。

進階儲存體提供一致的低延遲,而且如有需要,您還可以透過快取達到更低的延遲。

測試您的磁碟效能

您可以藉由選取正確的 VM 大小和儲存體類型來調整並平衡 VM 的 IOPS、輸送量和延遲。 一般而言,較大型或更昂貴的 VM 大小對於最大 IOPS 和輸送量有較高的保證。 將標準與進階儲存體和 HDD 與 SSD 選項加到方程式中,而且您有數個要搭配使用的參數。

選取正確的組合時,您必須先了解應用程式的需求為何。 高 I/O 應用程式,例如資料庫伺服器或在線事務處理系統,需要較高的 IOPS,而更多以計算為基礎的應用程式可能會透過較低的需求來取得。 此外, 應用程式所執行的作業類型 會影響您的輸送量。 對於高度隨機存取的 I/O,其速度往往比長時間的循序讀取緩慢。

一旦選取您的設定後,您可以使用 Iometer 這類工具在 Linux 和 Windows VM 上測試磁碟效能。 此測試可讓您更真實地瞭解預期效能。 同時也可協助您找出方法來改善應用程式的儲存體使用方式。 例如,應用程式若執行單一執行緒類別的 I/O,則可能因為延遲而承受降低的 I/O 效能。

在下一個單元中,我們將探討一些其他事項,以改善磁碟效能。