Alibaba Cloud POLARDBとRDSの簡単な性能比較(Sysbench編)

明けましておめでとうございます、SBC エンジニアのZです。

Alibaba Cloud が提供している POLARDB の性能検証をやっているところ、いろんなベンチマークツールを使用してデータを収集しています。

今回は Sysbench を使って POLARDB for MySQL の OLTP 処理性能を測ると同時に、Alibaba Cloud の RDS (MySQL) と簡単な比較試験をしました、その試験のメモになります。

簡単に Sysbench の紹介

sysbench はベンチマークツール、デフォルトでは CPU やメモリ以外 OLTP というベンチマークも付いています。

リレーショナルデータベース、特に MySQL のトランザクション性能測定ではよく使われています。

Github でダウンロードすることができます。

今回は性能比較が目的なので、インストールなどの手順は省略します。

試験シナリオ

・使用するシナリオは下記の二つ:

oltp_read_write:読み取り/書き込みの OLTP 処理

oltp_read_only:読み取りのみの OLTP 処理

・使用したパラメータ:
パラメータ 説明
table-size 1つのテーブルに挿入するレコード数 25000
tables テーブルの数 250
time 実行時間(秒) 600
threads 平行実行するスレッド数 10
・試験対象:
対象 スペック DBバージョン
RDS 2C8G MySQL8.0
POLARDB 2C8G MySQL8.0

試験結果

まずは軽く負荷をかけて、スレッド数10 で実行します。

パラメータ 説明
table-size 1つのテーブルに挿入するレコード数 25000
tables テーブルの数 250
time 実行時間(秒) 600
threads 平行実行するスレッド数 10

上記のパラメータで得た結果:

oltp-read-write f:id:sbc_zmm:20191224113808p:plain oltp-read-only f:id:sbc_zmm:20191224113944p:plain

計算してみます:

項目 RDS-QPS POLARDB-QPS 比較結果
Read write 2802180 3050880 約1.1倍
Read only 3425888 3425888 約1.01倍

emmm...そんなに POLARDB が優れないと思いますが、本当に高性能を持っているか?

POLARDB のドキュメントをよく調べてみましたが、パラレル処理が特徴のようです。 つまり同時処理コネクション数を大きくなったら何か変わるかな?

下記のようにsysbench のパラメータでスレッド数を変更してみましょう:

パラメータ 説明
table-size 1つのテーブルに挿入されるデータのレコード数 25000
tables テーブルの数 250
time 実行時間(秒) 600
threads 平行実行するスレッド数 500

スレッド数を大幅に上げ、500に変更した結果:

oltp-read-only

f:id:sbc_zmm:20191224115025p:plain

oltp-read-write

f:id:sbc_zmm:20191224115047p:plain

結果を確認してみます:

項目 RDS-QPS POLARDB-QPS 比較結果
Read write 5573400 8660600 約1.6倍
Read only 7183312 7183312 約1.9倍

1回目の試験と比べ随分結果が変わっていました。 Read-write は約 RDS の1.6倍になり、Read-only は1.9倍にもなりました。 確かに同じスペックの RDS と比べて、POLARDB が良いパフォーマンスが出そうです、素晴らしい!

また、Alibaba Cloud が公式的に公開した数値からだと、Read-only の性能が最大通常 MySQL サーバの6倍にもありました、それはすごい数値ですね!

終わりに

ということで、Alibaba Cloud POLARDBとRDSの簡単な性能比較をしました、Alibaba Cloud POLARDBが次世代リレーショナルデータベースとして期待できると思います。