Amazon-Web-Services

AWS R3.large 和 R4.large 實例上奇怪的 IOPS 性能

  • May 24, 2017

我在 Windows Server 2012R2 映像上使用了 4 個 10GB GP2 EBS 捲和 RAID0,如下所述:http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/raid-config.html使用的實例類型是 R3。大的

當突發池已滿時,我期望看到 4*3000 (12K IOPS),但我始終只能達到 7480 IOPS。沒關係。

之後,我將實例類型更改為 R4.large,它應該使用更新版本的 CPU(broadwell 而不是 Ivy Bridge),而且很可能更快。我保持其他一切相同,相同的磁碟、相同的作業系統、相同的測試:性能比 R3.large 差,大約為 6480 IOPS。

這裡有什麼問題?為什麼同一實例組(R-“Memory Intensive”)的較新一代的性能會比以前更差?

您的約束似乎來自實例類型的網路限制,而不是 EBS 本身。

需要在兩行之間進行一些閱讀,但EBS 優化實例 文件講述了一個有趣的故事——您的數字實際上比實例類型聲稱能夠支持的估計 IOPS 更好。

EBS 優化實例有兩個網路路徑,其中一個專用於 EBS 連接,而不是只有一個網路路徑由進出實例的所有 IP 流量共享……所以雖然文件沒有明確說明這一點,但速度無論實例是否經過 EBS 優化,似乎都是相同的——不同之處在於,對於優化的實例,EBS 流量不必共享相同的管道。實例的總頻寬翻了一番,一半分配給 EBS,一半分配給其他所有內容。

您提到使用 r3.large 實例,但表中未顯示…但如果我們從 r3.xlarge 向後推斷,則其中的數字非常小。

如文件中所述,IOPS 估計值是*“基於 100% 只讀工作負載的四捨五入近似值”*,並且由於所列速度的連接是全雙工的,因此混合讀取和寫入的數字可能會更大.

type       network mbits/s mbytes/s estimated peak IOPS

r4.large            400       50        3,000
r4.xlarge           800      100        6,000

r3.large            250       31.25     2,000 (ratio-based speculation)
r3.xlarge           500       62.5      4,000

通過掃描 500 GiB gp2 卷的前 512 MiB 來測試我的一個 r3.large 似乎證實了這個網路速度。這台機器不是 EBS 優化的,在執行這個測試時沒有處理任何有意義的工作負載。這與我之前對 r3.large 的觀察一致。一段時間以來,我的設計假設是這些機器只有大約 0.25 Gbit/s 的連接速度,但測試似乎值得重複。當然,這是一個 Linux 系統,但基本原則都應該成立。

# sync; echo 1 > /proc/sys/vm/drop_caches; dd if=/dev/xvdh bs=1M count=512 | pv -a > /dev/null
512+0 records in
512+0 records out
536870912 bytes (537 MB) copied, 14.4457 s, 37.2 MB/s
[35.4MB/s]

這看起來很像約 250 兆比特/秒的網路連接,當您需要儲存吞吐量時,它的頻寬並不多。與直覺相反,如果您的工作負載適合 t2 CPU 積分模型,您實際上會從 t2 獲得比從 r3 獲得的更好的性能。

引用自:https://serverfault.com/questions/851802