AWS EFS 的 Burst Credit 運作方式

2020-06-08 AWS

前幾天在一個服務在凌晨突然發生異常緩慢,然後在一個沒睡飽的狀態下開啟了一連串的踩坑之旅 …

話說這個服務是以 EC2 建立起來的 WordPress 服務,為了讓他可以 Autoscaling 所以在 wp-content 的部份掛上了 AWS EFS 然而悲劇正要開始 …

在這個 case 中,事先並沒有閱讀 EFS 有 Burst Credit 的問題,只是傻傻的直接用 AWS 建議的 Bursting mode (((說明看起來寫的蠻厲害的啊!!

CloudWatch BurstCreditBalance

上面這張圖就是 Read/Write Throughput 已經超出用量,而開始吃掉 Burst Credit 的 2.1TiB,然後 EFS 的效能就會遇到瓶頸,這個跟 EC2 t-family type 的 CPU Credit 是一樣的情境。

吃掉 Burst Credit 的兇手可以從 CloudWatch Metric 看 MetadataIOBytes、DataWriteIOBytes、DataReadIOBytes 這三個指標

CloudWatch Metrics

在看 EFS Metrics 記得要把 Statistic 改成 Sum 預設是 Average 會看不出來真實的 Read/Write Throughput。

AWS EFS Throughput Modes 有分為兩種:

  • Bursting: 基於「檔案系統容量」的 Read/Write Throughput (參考 Throughput Scaling with Bursting Mode),如果超過最多可以有 2.1 TiB 的 Burst Credit。
    • 價格:只需收費 Standard Storage 的儲存容量費用
  • Provisioned:固定的 Read/Write Throughput。
    • 價格:除 Standard Storage 費用外,需額外收 Provisioned Throughput 的費用

官方建議 EFS 採用 Bursting mode 會比較彈性,其原因是當遇到突波性的 I/O,Bursting mode 會有 Burst Credit 2.1 TiB 可以應急使用,但是相對的 Burst Credit 就必須要時時監控,否則就會遇到 Production 出現效能低落的問題。

使用 Provisioned mode 也有必須負擔的費用風險,每個月要額外負擔的 Provisioned Throughput 費用頗可觀,簡單試算一下就知道是有錢人在用的。

另外小提醒一下,當修改 Provisioned Throughput 後下次修改要等 24 小時。

最後只能說 … AWS 的服務使用前請先詳閱公開說明書。

References

給 Mr. 沙先生一點建議

彙整

分類

展開全部 | 收合全部

License

訂閱 Mr. 沙先生 的文章

輸入你的 email 用於訂閱