監控高CPU載執行個體的積分 - Amazon Elastic Compute Cloud

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

監控高CPU載執行個體的積分

EC2將指標發送到 Amazon CloudWatch。您可以在 CloudWatch 主控台的 Amazon EC2 每個執行個體指標中查看CPU積分指標,或使用列 AWS CLI 出每個執行個體的指標。如需詳細資訊,請參閱CloudWatch 您執行個體可用的指標

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

高載效能執行個體具有下列額外 CloudWatch 指標,每五分鐘更新一次:

  • CPUCreditUsage— 在測量期間花費的CPU學分數。

  • CPUCreditBalance— 執行個體已累CPU積的學分數。當CPU爆發和CPU積分花費得比賺取的速度更快時,這種餘額就會耗盡。

  • CPUSurplusCreditBalance— 當CPUCreditBalance值為零時,用於維持使CPU用率的剩餘CPU信用額度數。

  • CPUSurplusCreditsCharged— 超過可以在 24 小時內獲得的最大CPU學分數量的剩餘CPU積分數量,從而吸引了額外的費用。

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

下表說明高載效能執行處理的 CloudWatch 測量結果。如需詳細資訊,請參閱CloudWatch 您執行個體可用的指標

指標 描述
CPUCreditUsage

執行處理CPU用於使用的CPU點數。一個點CPU數等於以 100% 使用率CPU執行一分鐘的一 vvCPUs,或同等的使用率和時間組合 (例如,一個 v 以 50% 使用率CPU執行兩分鐘,或以 25% 的使用率 vCPUs 執行兩分鐘兩分鐘)。

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

單位:學分 (v CPU-分鐘)

CPUCreditBalance

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

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

執行個體中CPUCreditBalance的積分可用於超出其基準CPU使用率。

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

CPU信用指標只有五分鐘的頻率提供。

單位:學分 (v CPU-分鐘)

CPUSurplusCreditBalance

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

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

單位:學分 (v CPU-分鐘)

CPUSurplusCreditsCharged

所賺取的積分未支付的已支付剩餘CPU點數,因此會產生額外費用。

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

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

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

  • 執行個體從 unlimited 切換至 standard

單位:學分 (v CPU-分鐘)

計算CPU信用用量

執行處理的點數用量是使用上表所述的執行處理 CloudWatch 測量結果來計算。CPU

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/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 收費。