このドキュメントでは、PolarDB for MySQL Enterprise Edition 8.0.2 の Orca パフォーマンステストの結果について説明します。
テスト環境
Elastic Compute Service (ECS) インスタンスと PolarDB for MySQL クラスターは、同じリージョンおよび仮想プライベートクラウド (VPC) 内に配置する必要があります。
PolarDB for MySQL クラスターの構成:
クラスター仕様:Cluster Edition、データベースエンジンバージョン MySQL 8.0.2、ノード仕様
polar.mysql.x4.2xlarge(16 コア、64 GB)、ストレージタイプ PSL5。パラメーター設定:Blink-tree インデックスアクセラレーション機能 (
loose_innodb_polar_blink_tree=ON) を有効にして、クエリパフォーマンスを向上させます。
ECS インスタンスの構成:1 つの
ecs.c8i.16xlargeインスタンス (64 コア、128 GB) が Orca プライベートエンドポイントを介して接続し、VPC 内での高いアクセスパフォーマンスと効率的で安全なデータ転送を保証します。
テストツール
このテストでは、Redis Labs のマルチスレッドストレステストツールである memtier_benchmark を使用します。
パフォーマンステスト
テストシナリオ
このセクションでは、128 の同時接続と 512 の同時接続の 2 つのシナリオにおける Orca 機能のパフォーマンスについて説明します。テストでは、Ping-Pong とパイプラインの両方のネットワークメカニズムを使用します。
同時実行数 | 値のサイズ | スレッド | スレッドあたりの接続数 | 合計接続数 | 接続あたりの操作数 | キー範囲 | 合計データ量 |
128 の同時実行 | 128 バイト | 32 | 4 | 128 | 2,000,000 | [1, 128,000,000] | 約 30 GB |
1 KB | 32 | 4 | 128 | 2,000,000 | [1, 128,000,000] | 約 40 GB | |
4 KB | 32 | 4 | 128 | 200,000 | [1, 12,800,000] | 約 60 GB | |
16 KB | 32 | 4 | 128 | 200,000 | [1, 12,800,000] | 約 750 GB | |
512 の同時実行 | 128 バイト | 32 | 16 | 512 | 2,000,000 | [1, 512,000,000] | 約 150 GB |
1 KB | 32 | 16 | 512 | 2,000,000 | [1, 512,000,000] | 約 175 GB | |
4 KB | 32 | 16 | 512 | 200,000 | [1, 51,200,000] | 約 250 GB | |
16 KB | 32 | 16 | 512 | 200,000 | [1, 51,200,000] | 約 1.5 TB |
次の表に各パラメーターの説明を示します。
フィールド | 説明 |
同時実行数 | テストで使用される合計接続数。テストには、128 および 512 の同時接続シナリオが含まれます。 |
値のサイズ | テストで使用されるデータ値のサイズ。テスト対象のサイズは 128 バイト、1 KB、4 KB、16 KB です。 |
スレッド数 | 各テストシナリオで使用されるスレッド数。すべてのシナリオで 32 スレッドが使用されます。 |
スレッドあたりの接続数 | 各スレッドによって作成されるクライアント接続の数。128 の同時実行シナリオでは 4 つの接続が作成されます。512 の同時実行シナリオでは 16 の接続が作成されます。 |
合計接続数 | 同時接続の合計数。スレッド数にスレッドあたりの接続数を乗算したものです。 |
接続あたりの操作数 | 接続ごとに実行される読み取りおよび書き込み操作の数。 |
キー範囲 | 書き込みおよび読み取り操作のためにランダムに生成されるキーの範囲。 |
合計データ量 | 値のサイズ、操作数、接続数に基づいて計算された合計データ量。 |
テストメトリック
メトリック | 説明 |
QPS | 1 秒あたりに実行される読み取りおよび書き込み操作の数 (操作/秒)。 説明 QPS は、システムのスループット容量を測定するための主要なメトリックです。値が高いほど、処理能力が強いことを示します。 |
平均レイテンシ | 読み取りおよび書き込み操作の平均レイテンシ (ミリ秒、ms)。 説明 平均レイテンシは、システムの平均応答速度を反映します。値が低いほど、ユーザーエクスペリエンスが優れていることを示します。 |
p99 レイテンシ | 操作の 99% がこのレイテンシ以下で完了することを示す値 (ミリ秒、ms)。 説明 p99 レイテンシは、システムのパフォーマンスの安定性を測定するための重要なメトリックです。値が低いほど、高負荷時のパフォーマンスが安定していることを示します。 |
テスト結果
128 の同時実行
実行中に次の認証エラーが発生した場合:
"error: authentication failed [-ERR wrong number of arguments for 'auth'/'hello' command.]""error: authentication failed [-WRONGPASS invalid username-password pair or user is disabled.]"
これを解決するには、memtier_benchmark の公式ドキュメントの指定に従って認証パラメーターを修正してください。"-a $password" を "-a username:password" のフォーマットに置き換えます。username をご利用のユーザー名に、password をご利用のパスワードに置き換えてください。
128 バイトのテストコマンド
128 の同時接続と 128 バイトの値サイズでの Ping-Pong 書き込み専用テスト。
memtier_benchmark -s $host -p $port -a $password -c 4 -t 32 -n 2000000 --random-data --randomize --distinct-client-seed -d 128 --key-maximum=128000000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=1:0128 の同時接続と 128 バイトの値サイズでの Ping-Pong 読み取り専用テスト。
memtier_benchmark -s $host -p $port -a $password -c 4 -t 32 -n 2000000 --random-data --randomize --distinct-client-seed -d 128 --key-maximum=128000000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=0:1128 の同時接続と 128 バイトの値サイズでの Ping-Pong 読み取り/書き込みテスト。
memtier_benchmark -s $host -p $port -a $password -c 4 -t 32 -n 2000000 --random-data --randomize --distinct-client-seed -d 128 --key-maximum=128000000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=1:1128 の同時接続と 128 バイトの値サイズでのパイプライン書き込み専用テスト。
memtier_benchmark -s $host -p $port -a $password -c 4 -t 32 --pipeline=32 -n 2000000 --random-data --randomize --distinct-client-seed -d 128 --key-maximum=128000000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=1:0128 の同時接続と 128 バイトの値サイズでのパイプライン読み取り専用テスト。
memtier_benchmark -s $host -p $port -a $password -c 4 -t 32 --pipeline=32 -n 2000000 --random-data --randomize --distinct-client-seed -d 128 --key-maximum=128000000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=0:1128 の同時接続と 128 バイトの値サイズでのパイプライン読み取り/書き込みテスト。
memtier_benchmark -s $host -p $port -a $password -c 4 -t 32 --pipeline=32 -n 2000000 --random-data --randomize --distinct-client-seed -d 128 --key-maximum=128000000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=1:1
1 KB のテストコマンド
128 の同時接続と 1 KB の値サイズでの Ping-Pong 書き込み専用テスト。
memtier_benchmark -s $host -p $port -a $password -c 4 -t 32 -n 200000 --random-data --randomize --distinct-client-seed -d 1024 --key-maximum=12800000 --key-minimum=1 --key-prefix=key_ --ratio=1:0128 の同時接続と 1 KB の値サイズでの Ping-Pong 読み取り専用テスト。
memtier_benchmark -s $host -p $port -a $password -c 4 -t 32 -n 200000 --random-data --randomize --distinct-client-seed -d 1024 --key-maximum=12800000 --key-minimum=1 --key-prefix=key_ --ratio=0:1128 の同時接続と 1 KB の値サイズでの Ping-Pong 読み取り/書き込みテスト。
memtier_benchmark -s $host -p $port -a $password -c 4 -t 32 -n 200000 --random-data --randomize --distinct-client-seed -d 1024 --key-maximum=12800000 --key-minimum=1 --key-prefix=key_ --ratio=1:1128 の同時接続と 1 KB の値サイズでのパイプライン書き込み専用テスト。
memtier_benchmark -s $host -p $port -a $password -c 4 -t 32 --pipeline=32 -n 200000 --random-data --randomize --distinct-client-seed -d 1024 --key-maximum=12800000 --key-minimum=1 --key-prefix=key_ --ratio=1:0128 の同時接続と 1 KB の値サイズでのパイプライン読み取り専用テスト。
memtier_benchmark -s $host -p $port -a $password -c 4 -t 32 --pipeline=32 -n 200000 --random-data --randomize --distinct-client-seed -d 1024 --key-maximum=12800000 --key-minimum=1 --key-prefix=key_ --ratio=0:1128 の同時接続と 1 KB の値サイズでのパイプライン読み取り/書き込みテスト。
memtier_benchmark -s $host -p $port -a $password -c 4 -t 32 --pipeline=32 -n 200000 --random-data --randomize --distinct-client-seed -d 1024 --key-maximum=12800000 --key-minimum=1 --key-prefix=key_ --ratio=1:1
4 KB のテストコマンド
128 の同時接続と 4 KB の値サイズでの Ping-Pong 書き込み専用テスト。
memtier_benchmark -s $host -p $port -a $password -c 4 -t 32 -n 200000 --random-data --randomize --distinct-client-seed -d 4096 --key-maximum=12800000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=1:0128 の同時接続と 4 KB の値サイズでの Ping-Pong 読み取り専用テスト。
memtier_benchmark -s $host -p $port -a $password -c 4 -t 32 -n 200000 --random-data --randomize --distinct-client-seed -d 4096 --key-maximum=12800000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=0:1128 の同時接続と 4 KB の値サイズでの Ping-Pong 読み取り/書き込みテスト。
memtier_benchmark -s $host -p $port -a $password -c 4 -t 32 -n 200000 --random-data --randomize --distinct-client-seed -d 4096 --key-maximum=12800000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=1:1128 の同時接続と 4 KB の値サイズでのパイプライン書き込み専用テスト。
memtier_benchmark -s $host -p $port -a $password -c 4 -t 32 --pipeline=32 -n 200000 --random-data --randomize --distinct-client-seed -d 4096 --key-maximum=12800000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=1:0128 の同時接続と 4 KB の値サイズでのパイプライン読み取り専用テスト。
memtier_benchmark -s $host -p $port -a $password -c 4 -t 32 --pipeline=32 -n 200000 --random-data --randomize --distinct-client-seed -d 4096 --key-maximum=12800000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=0:1128 の同時接続と 4 KB の値サイズでのパイプライン読み取り/書き込みテスト。
memtier_benchmark -s $host -p $port -a $password -c 4 -t 32 --pipeline=32 -n 200000 --random-data --randomize --distinct-client-seed -d 4096 --key-maximum=12800000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=1:1
16 KB のテストコマンド
128 の同時接続と 16 KB の値サイズでの Ping-Pong 書き込み専用テスト。
memtier_benchmark -s $host -p $port -a $password -c 4 -t 32 -n 200000 --random-data --randomize --distinct-client-seed -d 16384 --key-maximum=12800000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=1:0128 の同時接続と 16 KB の値サイズでの Ping-Pong 読み取り専用テスト。
memtier_benchmark -s $host -p $port -a $password -c 4 -t 32 -n 200000 --random-data --randomize --distinct-client-seed -d 16384 --key-maximum=12800000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=0:1128 の同時接続と 16 KB の値サイズでの Ping-Pong 読み取り/書き込みテスト。
memtier_benchmark -s $host -p $port -a $password -c 4 -t 32 -n 200000 --random-data --randomize --distinct-client-seed -d 16384 --key-maximum=12800000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=1:1128 の同時接続と 16 KB の値サイズでのパイプライン書き込み専用テスト。
memtier_benchmark -s $host -p $port -a $password -c 4 -t 32 --pipeline=32 -n 200000 --random-data --randomize --distinct-client-seed -d 16384 --key-maximum=12800000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=1:0128 の同時接続と 16 KB の値サイズでのパイプライン読み取り専用テスト。
memtier_benchmark -s $host -p $port -a $password -c 4 -t 32 --pipeline=32 -n 200000 --random-data --randomize --distinct-client-seed -d 16384 --key-maximum=12800000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=0:1128 の同時接続と 16 KB の値サイズでのパイプライン読み取り/書き込みテスト。
memtier_benchmark -s $host -p $port -a $password -c 4 -t 32 --pipeline=32 -n 200000 --random-data --randomize --distinct-client-seed -d 16384 --key-maximum=12800000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=1:1
次の表にパフォーマンス結果の比較を示します。
テストシナリオ | QPS | 平均レイテンシ (ms) | p99 レイテンシ (ms) |
Ping-Pong 書き込み専用テスト (128 の同時実行、128 バイト) | 115,179.72 | 1.09 | 3.12 |
Ping-Pong 読み取り専用テスト (128 の同時実行、128 バイト) | 302,828.59 | 0.41 | 1.46 |
Ping-Pong 読み取り/書き込みテスト (128 の同時実行、128 バイト) | 200,585.95 | 0.63 | 2.14 |
パイプライン書き込み専用テスト (128 の同時実行、128 バイト) | 306,757.45 | 13.35 | 62.46 |
パイプライン読み取り専用テスト (128 の同時実行、128 バイト) | 1,598,605.28 | 2.54 | 13.82 |
パイプライン読み取り/書き込みテスト (128 の同時実行、128 バイト) | 272,943.49 | 15.00 | 58.62 |
Ping-Pong 書き込み専用テスト (128 の同時実行、1 KB) | 91,244.76 | 1.40 | 6.46 |
Ping-Pong 読み取り専用テスト (128 の同時実行、1 KB) | 310,197.23 | 0.41 | 1.46 |
Ping-Pong 読み取り/書き込みテスト (128 の同時実行、1 KB) | 142,757.04 | 0.89 | 4.67 |
パイプライン書き込み専用テスト (128 の同時実行、1 KB) | 195,675.57 | 21.03 | 232.45 |
パイプライン読み取り専用テスト (128 の同時実行、1 KB) | 981,181.21 | 4.17 | 39.94 |
パイプライン読み取り/書き込みテスト (128 の同時実行、1 KB) | 191,592.63 | 21.46 | 129.02 |
Ping-Pong 書き込み専用テスト (128 の同時実行、4 KB) | 49,899.54 | 2.55 | 18.30 |
Ping-Pong 読み取り専用テスト (128 の同時実行、4 KB) | 275,966.23 | 0.46 | 1.44 |
Ping-Pong 読み取り/書き込みテスト (128 の同時実行、4 KB) | 86,027.86 | 1.48 | 14.40 |
パイプライン書き込み専用テスト (128 の同時実行、4 KB) | 69,978.37 | 58.80 | 352.25 |
パイプライン読み取り専用テスト (128 の同時実行、4 KB) | 497,229.35 | 8.22 | 68.61 |
パイプライン読み取り/書き込みテスト (128 の同時実行、4 KB) | 97,213.70 | 42.25 | 352.25 |
Ping-Pong 書き込み専用テスト (128 の同時実行、16 KB) | 6,225.02 | 20.82 | 84.99 |
Ping-Pong 読み取り専用テスト (128 の同時実行、16 KB) | 166,434.33 | 0.78 | 1.44 |
Ping-Pong 読み取り/書き込みテスト (128 の同時実行、16 KB) | 12,868.24 | 10.03 | 70.14 |
パイプライン書き込み専用テスト (128 の同時実行、16 KB) | 6,542.18 | 627.00 | 2,981.89 |
パイプライン読み取り専用テスト (128 の同時実行、16 KB) | 215,512.81 | 19.09 | 45.57 |
パイプライン読み取り/書き込みテスト (128 の同時実行、16 KB) | 12,600.41 | 325.68 | 1,581.06 |
512 の同時実行
実行中に次の認証エラーが発生した場合:
"error: authentication failed [-ERR wrong number of arguments for 'auth'/'hello' command.]""error: authentication failed [-WRONGPASS invalid username-password pair or user is disabled.]"
これを解決するには、memtier_benchmark の公式ドキュメントの指定に従って認証パラメーターを修正してください。"-a $password" を "-a username:password" のフォーマットに置き換えます。username をご利用のユーザー名に、password をご利用のパスワードに置き換えてください。
128 バイトのテストコマンド
512 の同時接続と 128 バイトの値サイズでの Ping-Pong 書き込み専用テスト。
memtier_benchmark -s $host -p $port -a $password -c 16 -t 32 -n 2000000 --random-data --randomize --distinct-client-seed -d 128 --key-maximum=512000000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=1:0512 の同時接続と 128 バイトの値サイズでの Ping-Pong 読み取り専用テスト。
memtier_benchmark -s $host -p $port -a $password -c 16 -t 32 -n 2000000 --random-data --randomize --distinct-client-seed -d 128 --key-maximum=512000000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=0:1512 の同時接続と 128 バイトの値サイズでの Ping-Pong 読み取り/書き込みテスト。
memtier_benchmark -s $host -p $port -a $password -c 16 -t 32 -n 2000000 --random-data --randomize --distinct-client-seed -d 128 --key-maximum=512000000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=1:1512 の同時接続と 128 バイトの値サイズでのパイプライン書き込み専用テスト。
memtier_benchmark -s $host -p $port -a $password -c 16 -t 32 --pipeline=32 -n 2000000 --random-data --randomize --distinct-client-seed -d 128 --key-maximum=512000000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=1:0512 の同時接続と 128 バイトの値サイズでのパイプライン読み取り専用テスト。
memtier_benchmark -s $host -p $port -a $password -c 16 -t 32 --pipeline=32 -n 2000000 --random-data --randomize --distinct-client-seed -d 128 --key-maximum=512000000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=0:1512 の同時接続と 128 バイトの値サイズでのパイプライン読み取り/書き込みテスト。
memtier_benchmark -s $host -p $port -a $password -c 16 -t 32 --pipeline=32 -n 2000000 --random-data --randomize --distinct-client-seed -d 128 --key-maximum=512000000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=1:1
1 KB のテストコマンド
512 の同時接続と 1 KB の値サイズでの Ping-Pong 書き込み専用テスト。
memtier_benchmark -s $host -p $port -a $password -c 16 -t 32 -n 200000 --random-data --randomize --distinct-client-seed -d 1024 --key-maximum=51200000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=1:0512 の同時接続と 1 KB の値サイズでの Ping-Pong 読み取り専用テスト。
memtier_benchmark -s $host -p $port -a $password -c 16 -t 32 -n 200000 --random-data --randomize --distinct-client-seed -d 1024 --key-maximum=51200000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=0:1512 の同時接続と 1 KB の値サイズでの Ping-Pong 読み取り/書き込みテスト。
memtier_benchmark -s $host -p $port -a $password -c 16 -t 32 -n 200000 --random-data --randomize --distinct-client-seed -d 1024 --key-maximum=51200000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=1:1512 の同時接続と 1 KB の値サイズでのパイプライン書き込み専用テスト。
memtier_benchmark -s $host -p $port -a $password -c 16 -t 32 --pipeline=32 -n 200000 --random-data --randomize --distinct-client-seed -d 1024 --key-maximum=51200000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=1:0512 の同時接続と 1 KB の値サイズでのパイプライン読み取り専用テスト。
memtier_benchmark -s $host -p $port -a $password -c 16 -t 32 --pipeline=32 -n 200000 --random-data --randomize --distinct-client-seed -d 1024 --key-maximum=51200000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=0:1512 の同時接続と 1 KB の値サイズでのパイプライン読み取り/書き込みテスト。
memtier_benchmark -s $host -p $port -a $password -c 16 -t 32 --pipeline=32 -n 200000 --random-data --randomize --distinct-client-seed -d 1024 --key-maximum=51200000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=1:1
4 KB のテストコマンド
512 の同時接続と 4 KB の値サイズでの Ping-Pong 書き込み専用テスト。
memtier_benchmark -s $host -p $port -a $password -c 16 -t 32 -n 200000 --random-data --randomize --distinct-client-seed -d 4096 --key-maximum=51200000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=1:0512 の同時接続と 4 KB の値サイズでの Ping-Pong 読み取り専用テスト。
memtier_benchmark -s $host -p $port -a $password -c 16 -t 32 -n 200000 --random-data --randomize --distinct-client-seed -d 4096 --key-maximum=51200000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=0:1512 の同時接続と 4 KB の値サイズでの Ping-Pong 読み取り/書き込みテスト。
memtier_benchmark -s $host -p $port -a $password -c 16 -t 32 -n 200000 --random-data --randomize --distinct-client-seed -d 4096 --key-maximum=51200000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=1:1512 の同時接続と 4 KB の値サイズでのパイプライン書き込み専用テスト。
memtier_benchmark -s $host -p $port -a $password -c 16 -t 32 --pipeline=32 -n 200000 --random-data --randomize --distinct-client-seed -d 4096 --key-maximum=51200000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=1:0512 の同時接続と 4 KB の値サイズでのパイプライン読み取り専用テスト。
memtier_benchmark -s $host -p $port -a $password -c 16 -t 32 --pipeline=32 -n 200000 --random-data --randomize --distinct-client-seed -d 4096 --key-maximum=51200000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=0:1512 の同時接続と 4 KB の値サイズでのパイプライン読み取り/書き込みテスト。
memtier_benchmark -s $host -p $port -a $password -c 16 -t 32 --pipeline=32 -n 200000 --random-data --randomize --distinct-client-seed -d 4096 --key-maximum=51200000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=1:1
16 KB のテストコマンド
512 の同時接続と 16 KB の値サイズでの Ping-Pong 書き込み専用テスト。
memtier_benchmark -s $host -p $port -a $password -c 16 -t 32 -n 200000 --random-data --randomize --distinct-client-seed -d 16384 --key-maximum=51200000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=1:0512 の同時接続と 16 KB の値サイズでの Ping-Pong 読み取り専用テスト。
memtier_benchmark -s $host -p $port -a $password -c 16 -t 32 -n 200000 --random-data --randomize --distinct-client-seed -d 16384 --key-maximum=51200000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=0:1512 の同時接続と 16 KB の値サイズでの Ping-Pong 読み取り/書き込みテスト。
memtier_benchmark -s $host -p $port -a $password -c 16 -t 32 -n 200000 --random-data --randomize --distinct-client-seed -d 16384 --key-maximum=51200000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=1:1512 の同時接続と 16 KB の値サイズでのパイプライン書き込み専用テスト。
memtier_benchmark -s $host -p $port -a $password -c 16 -t 32 --pipeline=32 -n 200000 --random-data --randomize --distinct-client-seed -d 16384 --key-maximum=51200000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=1:0512 の同時接続と 16 KB の値サイズでのパイプライン読み取り専用テスト。
memtier_benchmark -s $host -p $port -a $password -c 16 -t 32 --pipeline=32 -n 200000 --random-data --randomize --distinct-client-seed -d 16384 --key-maximum=51200000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=0:1512 の同時接続と 16 KB の値サイズでのパイプライン読み取り/書き込みテスト。
memtier_benchmark -s $host -p $port -a $password -c 16 -t 32 --pipeline=32 -n 200000 --random-data --randomize --distinct-client-seed -d 16384 --key-maximum=51200000 --key-minimum=1 --key-prefix= --key-pattern=R:R --ratio=1:1
次の表にパフォーマンス結果の比較を示します。
テストシナリオ | QPS | 平均レイテンシ (ms) | p99 レイテンシ (ms) |
Ping-Pong 書き込み専用テスト (512 の同時実行、128 バイト) | 85,516.58 | 5.98 | 60.16 |
Ping-Pong 読み取り専用テスト (512 の同時実行、128 バイト) | 320,063.10 | 1.60 | 14.72 |
Ping-Pong 読み取り/書き込みテスト (512 の同時実行、128 バイト) | 208,489.07 | 2.46 | 22.53 |
パイプライン書き込み専用テスト (512 の同時実行、128 バイト) | 116,795.27 | 140.16 | 2,834.43 |
パイプライン読み取り専用テスト (512 の同時実行、128 バイト) | 323,316.82 | 50.77 | 436.22 |
パイプライン読み取り/書き込みテスト (512 の同時実行、128 バイト) | 205,215.89 | 79.93 | 2,719.74 |
Ping-Pong 書き込み専用テスト (512 の同時実行、1 KB) | 95,896.76 | 5.36 | 36.86 |
Ping-Pong 読み取り専用テスト (512 の同時実行、1 KB) | 498,535.49 | 1.04 | 5.02 |
Ping-Pong 読み取り/書き込みテスト (512 の同時実行、1 KB) | 187,732.88 | 2.75 | 19.20 |
パイプライン書き込み専用テスト (512 の同時実行、1 KB) | 149,738.66 | 109.44 | 1,024.00 |
パイプライン読み取り専用テスト (512 の同時実行、1 KB) | 929,717.39 | 17.73 | 137.22 |
パイプライン読み取り/書き込みテスト (512 の同時実行、1 KB) | 208,624.31 | 78.35 | 1,277.95 |
Ping-Pong 書き込み専用テスト (512 の同時実行、4 KB) | 38,969.61 | 13.17 | 111.61 |
Ping-Pong 読み取り専用テスト (512 の同時実行、4 KB) | 408,631.46 | 1.28 | 4.67 |
Ping-Pong 読み取り/書き込みテスト (512 の同時実行、4 KB) | 78,955.68 | 6.50 | 71.68 |
パイプライン書き込み専用テスト (512 の同時実行、4 KB) | 48,330.42 | 339.82 | 3,948.54 |
パイプライン読み取り専用テスト (512 の同時実行、4 KB) | 494,936.80 | 33.53 | 243.71 |
パイプライン読み取り/書き込みテスト (512 の同時実行、4 KB) | 83,907.15 | 195.16 | 3,112.96 |
Ping-Pong 書き込み専用テスト (512 の同時実行、16 KB) | 6,439.60 | 79.68 | 245.76 |
Ping-Pong 読み取り専用テスト (512 の同時実行、16 KB) | 211,629.97 | 2.44 | 15.17 |
Ping-Pong 読み取り/書き込みテスト (512 の同時実行、16 KB) | 12,453.06 | 41.15 | 216.06 |
パイプライン書き込み専用テスト (512 の同時実行、16 KB) | 6,586.62 | 2,503.77 | 40,894.46 |
パイプライン読み取り専用テスト (512 の同時実行、16 KB) | 208,420.70 | 79.56 | 708.61 |
パイプライン読み取り/書き込みテスト (512 の同時実行、16 KB) | 13,054.47 | 1,260.14 | 15,269.89 |
結論
PolarDB の Orca 機能は、PolarDB for MySQL の分散ストレージアーキテクチャと 3 レプリカ冗長化メカニズムを活用して、データ損失を防ぎます。
パイプラインシナリオでは、PolarDB の Orca 機能は、広範な集約最適化を使用してシステムのスループットを大幅に向上させます。必要に応じてパイプラインモードを選択できます。