監控爆量效能執行個體的 CPU 額度 - Amazon Elastic Compute Cloud

監控爆量效能執行個體的 CPU 額度

EC2 會將指標傳送至 Amazon CloudWatch。您可以在 CloudWatch 主控台的 Amazon EC2 每個執行個體指標中查看 CPU 額度指標,或使用 AWS CLI 列出每個執行個體的指標以查看 CPU 額度指標。如需更多詳細資訊,請參閱 使用主控台列出指標使用 AWS CLI 列出指標

高載效能執行個體的其他 CloudWatch 指標

爆量效能執行個體具有這些其他的 CloudWatch 指標,每五分鐘會更新一次:

  • CPUCreditUsage – 在衡量期間用掉的 CPU 額度。

  • CPUCreditBalance – 執行個體已累積的 CPU 額度。當 CPU 效能瞬間突增,以及 CPU 額度用掉的速度比獲得的快時,此額度餘額會用完。

  • CPUSurplusCreditBalance – 當 CPUCreditBalance 值為 0 時,為維持 CPU 使用率所用掉的多餘 CPU 額度。

  • CPUSurplusCreditsCharged – 超過 24 小時期間可獲得最高 CPU 額度的多餘 CPU 額度,因此會產生額外的費用。

最後兩種指標只適用於設定為 unlimited 的執行個體。

下表說明高載效能執行個體的 CloudWatch 指標。如需詳細資訊,請參閱 列出您的執行個體可用的 CloudWatch 指標

指標 描述
CPUCreditUsage

執行個體為 CPU 使用率花費的 CPU 額度數量。一個 CPU 額度等於一個 vCPU 以 100% 使用率執行 1 分鐘,或同等的 vCPU、使用率與時間的組合 (例如,一個 vCPU 以 50% 使用率執行 2 分鐘,或兩個 vCPU 以 25% 使用率執行 2 分鐘)。

CPU 額度指標僅提供 5 分鐘頻率。如果您要指定大於 5 分鐘的期間,請使用 Sum 統計資訊代替 Average 統計資訊。

單位:額度 (vCPU-分鐘)

CPUCreditBalance

自執行個體啟動或開始後,累積獲得的 CPU 額度數量。如果是 T2 Standard,CPUCreditBalance 也包含已產生的啟動額度。

獲得額度後,額度會在額度餘額中累積,並在支付額度時,從額度餘額中移出。額度餘額有最大值限制,它取決於執行個體大小。到達限制之後,任何獲得的新額度都會遭到捨棄。如果是 T2 Standard,啟動額度不會計入此限制。

CPUCreditBalance 中的額度可供執行個體支付以大幅提升並超越基準 CPU 使用率。

當執行個體執行時,CPUCreditBalance 中的額度不會過期。當 T3a 或 T3 執行個體停止時,CPUCreditBalance 值會持續保存七天。因此,所有累積的額度都會消失。當 T2 執行個體停止時,CPUCreditBalance 值不會持續保存,而且所有累積的額度都將消失。

CPU 額度指標僅提供 5 分鐘頻率。

單位:額度 (vCPU-分鐘)

CPUSurplusCreditBalance

unlimited 執行個體的 CPUCreditBalance 值為 0 時,該執行個體已支出的剩餘額度數量。

CPUSurplusCreditBalance 值由獲得的 CPU 額度支付。如果剩餘額度超過執行個體在 24 小時期間可獲得的最大額度數量,超過最大值的支出剩餘額度將必須負擔額外的費用。

單位:額度 (vCPU-分鐘)

CPUSurplusCreditsCharged

若支出剩餘額度數量未由獲得的 CPU 額度付清,會產生額外的費用。

發生以下任何情況時,將收取支出剩餘額度的費用。

  • 支出剩餘額度超過執行個體在 24 小時期間可獲得的最大額度數量。在小時結束時,將收取超過最大值的支出剩餘額度的費用。

  • 執行個體已停止或終止。

  • 執行個體從 unlimited 切換至 standard

單位:額度 (vCPU-分鐘)

計算 CPU 額度用量

執行個體的 CPU 額度用量,會透過上表中所說明的執行個體 CloudWatch 指標計算。

Amazon EC2 每五分鐘會將指標傳送給 CloudWatch。在任何時點參考指標的 prior 值,即表示該指標先前的值 (五分鐘前傳送的值)。

計算標準執行個體的 CPU 額度使用

  • 當用掉的額度,少於先前五分鐘間隔中所獲得的額度時,如果 CPU 使用率低於基準,則 CPU 額度餘額會增加。

  • 當用掉的額度,多於先前五分鐘間隔中所獲得的額度時,如果 CPU 使用率高於基準,則 CPU 額度餘額會減少。

在數學上,這可以透過下列方程式計算:

CPUCreditBalance = prior CPUCreditBalance + [Credits earned per hour * (5/60) - CPUCreditUsage]

執行個體的大小,決定了執行個體每小時可獲得的額度,以及執行個體額度餘額可累積獲得額度的上限。如需每小時所獲得的額度、每種執行個體大小的額度餘額限額資訊,請參閱額度表

範例

此範例使用 t3.nano 執行個體。若要計算執行個體的 CPUCreditBalance 值,請使用前述的方程式,如下所示:

  • CPUCreditBalance – 要計算的最新額度餘額。

  • prior CPUCreditBalance – 5 分鐘前的額度餘額。在此範例中,執行個體累積了 2 種額度。

  • Credits earned per hour – 一個 t3.nano 執行個體每小時會獲得 6 點。

  • 5/60 – 代表 CloudWatch 指標發佈之間的 5 分鐘間隔。將每小時獲得的額度乘上 5/60 (5 分鐘),以算出該執行個體在過去 5 分鐘內獲得的額度。t3.nano 執行個體每 5 分鐘會獲得 0.5 點。

  • CPUCreditUsage – 在過去 5 分鐘內執行個體所用掉的額度。在此範例中,執行個體過去 5 分鐘內用掉了 1 點。

使用這些值,可以計算出 CPUCreditBalance 值:

CPUCreditBalance = 2 + [0.5 - 1] = 1.5

計算無限制執行個體的 CPU 額度使用

當爆量效能執行個體的效能需要爆發超過基準時,一律會先用掉累積的額度,然後再使用剩餘額度。當該執行個體累積的 CPU 額度餘額用完時,可以使用剩餘額度,讓 CPU 在所需的期間大幅提升。如果 CPU 的使用率掉到基準以下,執行個體一律會先償還剩餘額度,然後才能累積獲得的額度。

在下列的方程式中,我們使用 Adjusted balance 一詞,來代表這個 5 分鐘間隔內所發生的動作。我們會使用此值來算出 CPUCreditBalanceCPUSurplusCreditBalance CloudWatch 指標的值。

Adjusted balance = [prior CPUCreditBalance - prior CPUSurplusCreditBalance] + [Credits earned per hour * (5/60) - CPUCreditUsage]

0Adjusted balance 值代表該執行個體為了突增的效能,已經用完所有獲得的額度,而且未使用剩餘額度。因此,CPUCreditBalanceCPUSurplusCreditBalance 都會設定為 0

正的 Adjusted balance 值表示該執行個體已累積獲得的額度,而且已償還先前的剩餘額度 (如果有的話)。因此,Adjusted balance 值會指派給 CPUCreditBalance,而 CPUSurplusCreditBalance 會設定為 0。執行個體的大小,會決定執行個體所能累積的額度上限

CPUCreditBalance = min [max earned credit balance, Adjusted balance] CPUSurplusCreditBalance = 0

負的 Adjusted balance 值代表執行個體已經用完所有累積獲得的額度,而且也因為突增的效能用掉了剩餘額度。因此,Adjusted balance 值會指派給 CPUSurplusCreditBalance,而 CPUCreditBalance 會設為 0。再說一次,執行個體的大小,會決定執行個體所能累積的額度上限

CPUSurplusCreditBalance = min [max earned credit balance, -Adjusted balance] CPUCreditBalance = 0

如果用掉的剩餘額度超過執行個體可累積的最高額度,則剩餘額度餘額會設定為最高額度,如先前的方程式中所示。剩下的剩餘額度會收取費用 (以 CPUSurplusCreditsCharged 指標表示)。

CPUSurplusCreditsCharged = max [-Adjusted balance - max earned credit balance, 0]

最後,當執行個體終止時,透過 CPUSurplusCreditBalance 追蹤的所有剩餘額度都會計費。如果執行個體從 unlimited 切換為 standard,也會針對所有剩下的 CPUSurplusCreditBalance 收費。