當 AWS EC2 實例發生當機,而根據原廠確認原因為 EBS(Elastic Block Store)卷的吞吐量超限時,處理這個問題的方法有幾種。這類情況通常是因為 EBS 卷的吞吐量(IOPS 或 throughput)超過了配置的限制,導致 EC2 實例無法正常操作。
處理 EBS 卷吞吐量超限的根本方法是升級 EBS 卷的類型和性能,根據需求選擇合適的 EBS 卷類型(如 gp3、io1、io2),並確保 EC2 實例的性能能夠配合使用的存儲資源。如果吞吐量經常超限,還需要考慮優化應用程式的 I/O 操作,或將負載分散到多個磁碟卷中。本篇先針對EBS容量、EC2類型與設置警報來做說明。
1. 檢查並升級 EBS 卷類型
EBS 提供多種類型的磁碟,根據需求選擇合適的卷型可以避免吞吐量不足的問題。可以考慮升級現有的 EBS 卷類型,以提供更高的吞吐量。
一般用途 SSD(gp3):提供相對較好的性價比,支持自訂吞吐量和 IOPS。可以升級現有卷為 gp3,並根據需要設置吞吐量。(此選項可自定義吞吐量)
預設性能 SSD(gp2):吞吐量會受限於卷的大小,因此,卷太小可能無法達到足夠的吞吐量。
性能 SSD(io1/io2):提供高吞吐量和低延遲,適合要求高吞吐量和高 IOPS 的工作負載。
2. 增加 EBS 卷的容量
如果客戶使用的是 gp2 類型的 EBS 卷,吞吐量是與磁碟容量有關的。具體來說,增加磁碟容量可以提高吞吐量,避免瓶頸。另請注意:增加卷的容量(相關數值至少大於 10 GiB)。
3. 調整 EC2 實例的性能
確保 EC2 實例的大小和性能配置適合工作負載。如果使用的 EC2 實例本身的網絡性能或磁碟性能不夠強大,可能會對吞吐量設有限制。所以應根據需求進行升級 EC2 實例,選擇更高網絡性能和 I/O 性能的類型。
但此一修改須將EC2停機,才能修改實例類型,之後啟動實例還需要再確認性能是否改善。
4. 監控 EBS 性能並設置警報(避免狀況再發生的處置)
使用 AWS CloudWatch 監控 EBS 卷的性能,設置警報來提前識別吞吐量接近極限的情況。可設置警報以便當 EBS 卷的吞吐量達到一定閾值時,及時進行調整。
在CloudWatch操作介面可創建監控警報,選擇 EBS 卷的吞吐量(VolumeReadOps, VolumeWriteOps, VolumeThroughput 等指標),設定當吞吐量接近或超過閾值時觸發警報,並通過電子郵件或其他方式通知。
另外對Auto Scaling相關作法應可緩解相關異常狀況,以上資料供大家參考運用。
參考網址:
Request Amazon EBS volume modifications - Amazon EBS
Amazon EBS volume types - Amazon EBS
Amazon EC2 instance type changes - Amazon Elastic Compute Cloud