去年年底的時候 Percona 的人在 AWS 上測試 Percona XtraDB Cluster 的效能,尤其是針對底層應該選擇哪種 EBS 的部分給了一些建議。可以參考先前寫的「Percona 分析在 AWS 上跑 Percona XtraDB Cluster 的效能 (I/O bound)」這篇。
當時的建議是用 io1
,雖然是比較貴,但對於效能比較好。
而後來 Percona 的人收到 AWS 工程師的建議,可以用另外一個方式,可以在 gp2
上拉出類似的效能,但成本會比 io1
低不少:「Percona XtraDB Cluster on Amazon GP2 Volumes」。
這個方式是利用 gp2
會依照空間大小,計算可用的 IOPS。在官方的文件裡是這樣描述 gp2
的效能 (IOPS):
General Purpose SSD (gp2) volumes offer cost-effective storage that is ideal for a broad range of workloads. These volumes deliver single-digit millisecond latencies and the ability to burst to 3,000 IOPS for extended periods of time. Between a minimum of 100 IOPS (at 33.33 GiB and below) and a maximum of 10,000 IOPS (at 3,334 GiB and above), baseline performance scales linearly at 3 IOPS per GiB of volume size. AWS designs gp2 volumes to deliver the provisioned performance 99% of the time. A gp2 volume can range in size from 1 GiB to 16 TiB.
在這個前提下,需要 10000 IOPS 的效能會需要 3.3TB 以上的空間,所以 Percona 就被 AWS 的工程師建議直接拉高空間重新測試:
After publishing our material, Amazon engineers pointed that we should try GP2 volumes with the size allocated to provide 10000 IOPS. If we allocated volumes with size 3.3 TiB or more, we should achieve 10000 IOPS.
首先是測出來的效能,可以看到沒有太大差異:
接下來就比較儲存成本,大約是 io1
版本的一半價錢:
如上面文件中提到的,gp1
不完全保證效能,但統計出來經常能夠提供出 3 IOPS/GB 的效能。而 io1
則是保證效能,不太需要擔心效能不穩定的問題。就是這個差異,反應到成本上面就有蠻大的差距。善用這點設計系統,應該會對整體成本有蠻大的幫助... (但對 latency 就未必了,尤其是 P99 之類的數值)
算是另外一種搞法讓大家可以考慮...
One thought on “Percona 的人接受 AWS 的建議,重新測試了 Percona XtraDB Cluster 在 gp2 上的效能...”