簡體   English   中英

IOPS(在 Amazon EBS 中)在實踐中意味着什么?

[英]What does IOPS (in Amazon EBS) mean in practice?

我有一些應用程序所需的圖像。 有很多圖像(50,000+),但整體大小很小(40 Mb)。 最初,我以為我只會使用 S3,但上傳速度非常慢。 作為臨時解決方案,我想附加一個包含圖像的 EBS,這樣就可以了。 但是,閱讀有關 EBS 通用 (gp2) 的一些內容后,我注意到以下描述:

GP2 是 Amazon EC2 實例的默認 EBS 卷類型。 這些卷由固態驅動器 (SSD) 提供支持,適用於廣泛的事務性工作負載,包括開發/測試環境、低延遲交互式應用程序和啟動卷。 GP2 旨在提供個位數毫秒的延遲,提供 3 IOPS/GB至最大 10,000 IOPS的一致基准性能,並提供高達 160 MB/s 的每個卷的吞吐量。

讓我擔心的是 3 IOPS/GB 的數量。 這在實際中意味着什么? 假設您需要一個供少量用戶使用的電子商務站點(例如,每分鍾 < 10,000 個請求)並且需要檢索這些圖像。 亞馬遜描述了如何衡量 IOPS:

當小型 I/O 操作在物理上是連續的時,Amazon EBS 會嘗試將它們合並為一個最大大小的 I/O。 例如,對於 SSD 卷,單個 1,024 KiB I/O 操作將計為 4 個操作,而 4 KiB 的 256 個 I/O 操作將計為 256 個操作。

這是否真的意味着如果我想在一秒內檢索 50 張 10kB 的圖像,我需要 50 IOPS 並且很容易超過 3 IOPS 的基線?

更新

感謝 Mark B 的建議,我能夠使用 S3 上傳我的文件。 但是,我仍然想知道執行常見任務(例如運行數據庫或為 Web 應用程序提供其他文件)所需的 IOPS 量。 根據您的經驗,我很高興聽到一些關於 IOPS 最小值的參考值。

您缺少該語句的“ /GB ”部分。 基准是每 GB 3 IOPS。 如果您的 EBS 卷為 100GB,那么您的基線為 300 IOPS。 對於 GP2 EBS 卷,您必須將卷的大小乘以 3 才能獲得 IOPS。

請注意,任何 1TB 以下的 GP2 卷也能夠以高達 3,000 IOPS 的速度突增,因此任何有限的 IO 增加都應該仍然表現良好。


此外,我還要補充一點,S3 聽起來更適合您的用例。 如果您看到 S3 的上傳速度緩慢,這是一個可以解決的問題。 您可以使用CloudFront提供可以上傳到的附近邊緣站點。

根據我的經驗,上傳到 S3 永遠不會比上傳到 EBS 卷將附加到的 EC2 實例慢。


更新:

要回答您的其他問題,所需的最低 IOPS 將取決於許多變量,例如可用 RAM 量、您正在運行的應用程序類型、應用程序在內存中緩存值的程度、IO 操作的平均大小等。確定一個確切的數字並說明您的應用程序恰好需要 X IOPS 真的很困難。

您還需要記住,任何大小低於 1TB 的卷仍然可以在幾秒鍾內突增至 3,000 IOPS。 因此,即使您的應用程序在使用時需要高 IOPS,如果它沒有看到太多使用情況,IOPS 突發功能可能就是它所需要的全部。

一般來說,我通常從 100GB 卷和 300 IOPS 之類的東西開始,然后測試我的應用程序的性能。 完全在 RAM 中運行的 Web 服務器可能永遠不需要更多。 對於像數據庫這樣的東西,您可能會從您認為需要的磁盤空間量開始,然后開始性能測試。 CloudWatch 將顯示您的應用程序正在使用的 IOPS 量,如果您看到它在您的容量限制下達到最大值,那么您就會知道您需要增加可用的 IOPS。 沖洗並重復,直到您在性能測試期間不再最大化可用 IOPS。

@Mark B 的回答可能是正確的,因為它指出您的 IOP 取決於您的 EBS 卷的大小。 對於您想要的,S3 是最佳選擇。

但根據您的用例和要求,可能需要 EBS。 如果您想運行數據庫,則尤其如此。 在這種情況下,您有幾個選擇。

您可以獲得預置 IOPS - 如果您知道需要 5000 IOPS,但只需要說 100GB 的存儲空間(使用 gp2 通常可以為您提供大約 300 IOPS),您可以使用 io1 卷。 這會產生額外的成本,您需要確保將其附加到 EBS 優化實例,但如果需要,您可以獲得高達 20k 的 IOPS。

如果您要進行大量順序讀取(讀取大型數據集?),那么有一種新型 EBS,st1。 這對於 500MB/s 來說是不錯的,並且不到 gp2 成本的 1/2。

最后,您還可以考慮另一種情況(例如,您是個瘋子,想嘗試做一些奇怪的事情)。 如果您可以從某個地方獲取存檔,並且您所關心的只是從一個非常快速的文件系統中提供它們,您可以將它們放在具有實例存儲的實例上。 這是一個本地連接的 SSD,所以速度非常快。 唯一的缺點是當您的實例停止時,您的數據就會消失。

為了解決您的更新,“您需要多少 IOPS 數據庫”,答案是“視情況而定”。 每個數據庫引擎都有不同的要求,每個數據庫的使用都有不同的使用模式。 如果您想了解更多信息,請查看此內容 但基本上,測試和監控。 如果您擔心,請在發布時過度配置,並根據需要縮小規模。 或者進行猜測,並在遇到問題時增加 - 最小化成本還是為最終用戶提供良好的性能更重要?

根據您的用例,s3 是更好的選擇,但如果有人想使用 EBS 卷並認為他們需要更多 IOPS,他們可以選擇 gp3 卷類型而不是 gp2。 在 gp3 卷中,可以獨立於吞吐量增加 16,000 IOPS(此外,吞吐量可以獨立於 IOPS 增加至 1000 MiB/s)。

通用型 SSD (gp2) 卷提供經濟高效的存儲,非常適合各種工作負載。 這些卷提供個位數的毫秒延遲,並能夠在很長一段時間內突增至 3,000 IOPS。 在最低 100 IOPS(33.33 GiB 及以下)和最高 16,000 IOPS(5,334 GiB 及以上)之間,基准性能以每 GiB 卷大小 3 IOPS 線性擴展。 AWS 設計了 ​​gp2 卷以在 99% 的時間內提供 90% 的預配置性能。 gp2 卷的大小范圍從 1 GiB 到 16 TiB。 鏈接:

  1. 鏈接

有時性能也會有所不同:根據 AWS Doc,實例類型每 24 小時至少可以支持 30 分鍾的最高性能。 如果您的工作負載需要持續最大性能超過 30 分鍾,請根據基准性能鏈接選擇實例類型:

  1. 鏈接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM