Redshift 的 2*dw2.8xlarge 與 32*dw2.large 的比較

這邊的 Amazon Redshift 都是跑在 Oregon (us-west-2),前者的價錢是 USD$9.6/hour,後者是 USD$8/hour,大約貴一些。這是同一個 query 跑過多次後穩定的數字,用 PostgreSQL\timing 出來的數字計算。

先從比較簡單的 query 開始,這個表格大約六億筆資料,如果以記憶體大小算的話,是 memory-fit。

前者是:

dev=# SELECT COUNT(DISTINCT x) FROM t;
 count  
--------
 925612
(1 row)

Time: 3345.946 ms

後者是:

dev=# SELECT COUNT(DISTINCT x) FROM t;
 count  
--------
 925612
(1 row)

Time: 2145.132 ms

再來條件多一點,一樣前者是:

dev=# SELECT x, COUNT(*) AS cnt FROM t GROUP BY x ORDER BY cnt DESC LIMIT 20;
...
(20 rows)

Time: 2121.002 ms

後者是:

dev=# SELECT x, COUNT(*) AS cnt FROM t GROUP BY x ORDER BY cnt DESC LIMIT 20;
...
(20 rows)

Time: 1388.102 ms

發現比較貴的 cluster 的反而比較慢 (大台 dw2.8xlarge 組成的),用多台小台的去堆反而比較快。晚點找時間測沒辦法 memory-fit 的速度。

意外的跟直覺不太一樣,要測過才知道...

One thought on “Redshift 的 2*dw2.8xlarge 與 32*dw2.large 的比較”

  1. 感覺上要看 query 是 CPU bound 還是 I/O bound。

    dw2.large 的 ECU 是 7,32 台總 ECU 是 224。
    dw2.8xlarge 的 ECU 是 104,2台總 ECU 是 208。
    如果是 CPU bound 的 query,32 台 dw2.large 的效能會比 2 台 dw2.8xlarge 好。

    dw2.large 的 I/O 是 0.2GB/s,32 台總 I/O 是 6.4GB/s。
    dw2.8xlarge 的 I/O 是 3.5GB/s,2台總 I/O 是 7GB/s。
    如果是 I/O bound 的 query,2台 dw2.8xlarge 才會快過 32 台 dw2.large。

Leave a Reply

Your email address will not be published. Required fields are marked *