ApsaraDB for MongoDB は、MongoDB プロトコルを完全にサポートしています。分散 Apsara システムと高信頼性ストレージエンジンをベースとしています。 ApsaraDB for MongoDB は、複数ノードの高可用性アーキテクチャ、エラスティックスケーリング、ディザスタリカバリ、バックアップとロールバック、パフォーマンス最適化などのソリューションを提供します。
テスト環境
項目 | ECSインスタンス | 物理サーバーを使用するApsaraDB for MongoDBインスタンス | クラウドディスクを使用するApsaraDB for MongoDBインスタンス |
項目 | ECSインスタンス | 物理サーバーを使用するApsaraDB for MongoDBインスタンス | クラウドディスクを使用するApsaraDB for MongoDBインスタンス |
リージョンとゾーン | 杭州 (杭州) ゾーンH | 杭州 (杭州) ゾーンH | 杭州 (杭州) ゾーンH |
ネットワークタイプ | VPC | VPC | VPC |
インスタンスカテゴリ | c6e: パフォーマンスが強化されたコンピューティング最適化インスタンスファミリー | 一般目的および専用 | 専用型 |
インスタンスタイプ | ecs.c6e.2xlarge(8コア、16 GB) | いろいろな指定は利用できます。 詳細については、「テスト結果」をご参照ください。 | いろいろな指定は利用できます。 詳細については、「テスト結果」をご参照ください。 |
ストレージタイプ | ESSD PL1 | ローカルSSD | ESSD PL1 |
トポロジ | - | 標準レプリカセットインスタンス (3つのノード: 1つのプライマリノード、1つのセカンダリノード、1つの隠しノード) | 標準レプリカセットインスタンス (3つのノード: 1つのプライマリノード、1つのセカンダリノード、1つの隠しノード) |
イメージバージョン | Alibaba Cloud Linux 3.2104 LTS 64ビット | 3.10.0-327.ali2017.alios7.x86_64 | 4.19.81-17.2.al7.x86_64 |
データベースエンジンのバージョン | - | MongoDB 4.2 (マイナーバージョン4.2.13のベースライン) | MongoDB 4.4 (マイナーバージョン4.4.1のベースライン) |
一貫性 | - | デフォルトの読み取り /書き込みに関する懸念 | デフォルトの読み取り /書き込みに関する懸念 |
説明
ECSインスタンスとApsaraDB for MongoDBインスタンスが同じリージョンとゾーンにデプロイされている場合、往復時間 (RTT) の値は約0.104msです。
テストツール
オープンソースのYCSB 0.17.0ツールは、ストレステストに使用されます。
説明
YCSB は、複数のデータベースのパフォーマンステストで使用できる Java ツールです。 インストールと使用方法の詳細については、YCSB をご参照ください。
テストの実行手順
ECSインスタンスのプライマリプライベートIPアドレスをApsaraDB for MongoDBインスタンスのホワイトリストに追加します。 詳細については、「ApsaraDB For MongoDBインスタンスのIPアドレスホワイトリストの変更」をご参照ください。
説明
ECSコンソールにログインし、[インスタンスの詳細] ページの [ネットワーク情報] セクションでECSインスタンスの [プライマリプライベートIPアドレス] を表示します。
ECSインスタンスに接続します。 詳細については、「ECSコンソール (エクスプレスバージョン) を使用したECSインスタンスの作成と管理」をご参照ください。
Yahoo Cloud Serving Benchmark (YCSB) ツールを使用して、テストデータを読み込みます。
. /bin/ycsb load mongodb -s -pワークロード=site.ycsb.workloads.CoreWorkload -p recordcount=1000000 -p mongodb.url="mongodb:// test:**** @ dds-bp13e84d11 **** .mongodb.rds.aliyuncs.com:3717/admin"-スレッド8
次のアイテムを変更できます。
recordcount=1000000
: インスタンスにロードされたデータレコードの総数。
mongodb.url="mongodb:// test:**** @ dds-bp13e84d11 **** .mongodb.rds.aliyuncs.com:3717/admin"
: インスタンスのエンドポイント。 データベースアカウントはtestで、データベースはadminです。
threads 8
: クライアント上の同時スレッド数。
次のコマンドを実行して、パフォーマンスストレステストを実行します。
. /bin/ycsb run mongodb -s -pワークロード=site.ycsb.workloads.CoreWorkload -p recordcount=1000000 -p operationcount=5000000 -p insertproportion=0 -p readproportion=50 -p updateproportion=50 -p requestdistribution=zipfian -p mongodb. ur.url="3717-" mongos.b///////////t///////////
次のアイテムを変更できます。
recordcount=1000000
: インスタンスにロードされたデータレコードの総数。
operationcount=5000000
: 読み取り操作と書き込み操作の合計数。
insertproportion=0
: ロード操作の比率。
readproportion=50
: 読み取り操作の比率。
updateproportion=50
: 更新操作の比率。
mongodb.url="mongodb:// test:**** @ dds-bp13e84d11 **** .mongodb.rds.aliyuncs.com:3717/admin"
: インスタンスのエンドポイント。 データベースアカウントはtestで、データベースはadminです。
threads 8
: クライアント上の同時スレッド数。
テスト結果
シナリオ
r:w=100:0
: 読み取り要求と書き込み要求の比率は100:0です。
r:w=95:5
: 読み取り要求と書き込み要求の比率は95:5です。
r:w=50:50
: 読み取り要求と書き込み要求の比率は50:50です。
r:w=5:95
: 読み取り要求と書き込み要求の比率は5:95です。
r:w=0:100
: 読み取り要求と書き込み要求の比率は0:100です。
メトリクス
recordcount
: ApsaraDB for MongoDBインスタンスにアップロードされたデータ行の総数。
operationcount
: 読み取り /書き込み操作の総数。
threads
: クライアント上の同時スレッドの数。
スループット
: ApsaraDB for MongoDBインスタンスのスループット。 単位: 1秒あたりの操作 (OPS) 。
RAL
: 読み取り操作の平均レイテンシ。 単位:マイクロ秒。
WAL
: 書き込み操作の平均レイテンシ。 単位:マイクロ秒。
説明
このトピックでは、RAL
またはWAL
が0に設定されている場合、読み取りまたは書き込み操作は含まれません。
次のセクションでは、物理サーバーを使用するインスタンスと、読み取り /書き込み比率が異なるクラウドディスクを使用するインスタンスのテスト結果とパフォーマンスの比較を示します。
MongoDB 4.2を実行し、物理サーバーを使用するインスタンス
MongoDB 4.4を実行し、クラウドディスクを使用するインスタンス
性能比較
CPU: メモリ | インスタンスタイプ | recordcount | スレッド | スループット | RAL | WAL |
1:2 | 1コア、2 GB (汎用) | 1000000 | 4 | 3589 | 0 | 1110 |
2コア、4 GB (汎用) | 2000000 | 8 | 7629 | 0 | 521 |
4コア、8 GB (汎用) | 4000000 | 16 | 24300 | 0 | 654 |
8コア、16 GB (汎用) | 8000000 | 32 | 26745 | 0 | 1191 |
1:4 | 8コア、32 GB (汎用) | 16000000 | 32 | 29090 | 0 | 1095 |
16コア、64 GB (汎用) | 32000000 | 128 | 41098 | 0 | 3033 |
1:8 | 2コア、16 GB (専用) | 8000000 | 8 | 6553 | 0 | 1217 |
4コア、32 GB (専用) | 16000000 | 16 | 14526 | 0 | 1097 |
8コア、64 GB (専用) | 32000000 | 32 | 35437 | 0 | 899 |
16コア、128 GB (専用) | 64000000 | 160 | 60078 | 0 | 2658 |
CPU: メモリ | インスタンスタイプ | operationcount | スレッド | スループット | RAL | WAL |
1:2 | 1コア、2 GB (汎用) | 1000000 | 4 | 6387 | 623 | 0 |
2コア、4 GB (汎用) | 2000000 | 8 | 12893 | 616 | 0 |
4コア、8 GB (汎用) | 4000000 | 16 | 37016 | 427 | 0 |
8コア、16 GB (汎用) | 8000000 | 32 | 48014 | 658 | 0 |
1:4 | 8コア、32 GB (汎用) | 16000000 | 32 | 44251 | 1589 | 0 |
16コア、64 GB (汎用) | 32000000 | 128 | 57252 | 2226 | 0 |
1:8 | 2コア、16 GB (専用) | 8000000 | 8 | 12436 | 641 | 0 |
4コア、32 GB (専用) | 16000000 | 16 | 20551 | 773 | 0 |
8コア、64 GB (専用) | 32000000 | 32 | 50246 | 632 | 0 |
16コア、128 GB (専用) | 64000000 | 160 | 66876 | 2385 | 0 |
CPU: メモリ | インスタンスタイプ | operationcount | スレッド | スループット | RAL | WAL |
1:2 | 1コア、2 GB (汎用) | 1000000 | 4 | 4556 | 864 | 1079 |
2コア、4 GB (汎用) | 2000000 | 8 | 10391 | 757 | 914 |
4コア、8 GB (汎用) | 4000000 | 16 | 34411 | 453 | 561 |
8コア、16 GB (汎用) | 8000000 | 32 | 41095 | 763 | 925 |
1:4 | 8コア、32 GB (汎用) | 16000000 | 32 | 39920 | 785 | 926 |
16コア、64 GB (汎用) | 32000000 | 128 | 55148 | 2305 | 2381 |
1:8 | 2コア、16 GB (専用) | 8000000 | 8 | 8869 | 871 | 1394 |
4コア、32 GB (専用) | 16000000 | 16 | 18206 | 856 | 1192 |
8コア、64 GB (専用) | 32000000 | 32 | 47111 | 664 | 861 |
16コア、128 GB (専用) | 64000000 | 160 | 68801 | 2312 | 2449 |
CPU: メモリ | インスタンスタイプ | operationcount | スレッド | スループット | RAL | WAL |
1:2 | 1コア、2 GB (汎用) | 1000000 | 4 | 3062 | 1207 | 1399 |
2コア、4 GB (汎用) | 2000000 | 8 | 6610 | 1128 | 1318 |
4コア、8 GB (汎用) | 4000000 | 16 | 19743 | 743 | 864 |
8コア、16 GB (汎用) | 8000000 | 32 | 22750 | 987 | 1809 |
1:4 | 8コア、32 GB (汎用) | 16000000 | 32 | 21763 | 1010 | 1907 |
16コア、64 GB (汎用) | 32000000 | 128 | 43498 | 2162 | 3696 |
1:8 | 2コア、16 GB (専用) | 8000000 | 8 | 5680 | 1345 | 1930 |
4コア、32 GB (専用) | 16000000 | 16 | 10470 | 1064 | 1971 |
8コア、64 GB (専用) | 32000000 | 32 | 20427 | 790 | 2329 |
16コア、128 GB (専用) | 64000000 | 160 | 29445 | 2944 | 7891 |
CPU: メモリ | インスタンスタイプ | operationcount | スレッド | スループット | RAL | WAL |
1:2 | 1コア、2 GB (汎用) | 1000000 | 4 | 2431 | 1511 | 1649 |
2コア、4 GB (汎用) | 2000000 | 8 | 5336 | 1406 | 1608 |
4コア、8 GB (汎用) | 4000000 | 16 | 14496 | 858 | 1110 |
8コア、16 GB (汎用) | 8000000 | 32 | 14573 | 958 | 2253 |
1:4 | 8コア、32 GB (汎用) | 16000000 | 32 | 13812 | 995 | 2377 |
16コア、64 GB (汎用) | 32000000 | 128 | 20663 | 2831 | 6348 |
1:8 | 2コア、16 GB (専用) | 8000000 | 8 | 4079 | 3201 | 8066 |
4コア、32 GB (専用) | 16000000 | 16 | 7154 | 1080 | 2288 |
8コア、64 GB (専用) | 32000000 | 32 | 12585 | 783 | 2626 |
16コア、128 GB (専用) | 64000000 | 160 | 17083 | 4241 | 9615 |
CPU: メモリ | インスタンスタイプ | operationcount | スレッド | スループット | RAL | WAL |
1:2 | 1コア、2 GB (汎用) | 1000000 | 4 | 2429 | 0 | 1642 |
2コア、4 GB (汎用) | 2000000 | 8 | 5238 | 0 | 1643 |
4コア、8 GB (汎用) | 4000000 | 16 | 13794 | 0 | 1154 |
8コア、16 GB (汎用) | 8000000 | 32 | 14566 | 0 | 2189 |
1:4 | 8コア、32 GB (汎用) | 16000000 | 32 | 13485 | 0 | 2361 |
16コア、64 GB (汎用) | 32000000 | 128 | 19758 | 0 | 6461 |
1:8 | 2コア、16 GB (専用) | 8000000 | 8 | 3939 | 0 | 8097 |
4コア、32 GB (専用) | 16000000 | 16 | 6940 | 0 | 2298 |
8コア、64 GB (専用) | 32000000 | 32 | 12567 | 0 | 2539 |
16コア、128 GB (専用) | 64000000 | 160 | 16325 | 0 | 9770 |
CPU: メモリ | インスタンスタイプ | recordcount | スレッド | スループット | RAL | WAL |
1:2 | 4コア、8 GB (専用) | 4000000 | 16 | 18235 | 0 | 871 |
8コア、16 GB (専用) | 8000000 | 32 | 35643 | 0 | 891 |
16コア、32 GB (専用) | 16000000 | 64 | 65345 | 0 | 971 |
1:4 | 2コア、8 GB (専用) | 4000000 | 8 | 6613 | 0 | 1202 |
8コア、32 GB (専用) | 16000000 | 64 | 45952 | 0 | 1385 |
16コア、64 GB (専用) | 32000000 | 96 | 61973 | 0 | 1539 |
1:8 | 2コア、16 GB (専用) | 8000000 | 8 | 6224 | 0 | 1280 |
4コア、32 GB (専用) | 16000000 | 16 | 18603 | 0 | 857 |
CPU: メモリ | インスタンスタイプ | operationcount | スレッド | スループット | RAL | WAL |
1:2 | 4コア、8 GB (専用) | 4000000 | 16 | 24945 | 634 | 0 |
8コア、16 GB (専用) | 8000000 | 32 | 33270 | 938 | 0 |
16コア、32 GB (専用) | 16000000 | 64 | 55703 | 1136 | 0 |
1:4 | 2コア、8 GB (専用) | 4000000 | 8 | 10989 | 723 | 0 |
8コア、32 GB (専用) | 16000000 | 64 | 36039 | 1740 | 0 |
16コア、64 GB (専用) | 32000000 | 96 | 59960 | 1585 | 0 |
1:8 | 2コア、16 GB (専用) | 8000000 | 8 | 11298 | 703 | 0 |
4コア、32 GB (専用) | 16000000 | 16 | 24306 | 653 | 0 |
CPU: メモリ | インスタンスタイプ | operatiocount | スレッド | スループット | RAL | WAL |
1:2 | 4コア、8 GB (専用) | 4000000 | 16 | 22471 | 797 | 1161 |
8コア、16 GB (専用) | 8000000 | 32 | 29543 | 1064 | 1199 |
16コア、32 GB (専用) | 16000000 | 64 | 53466 | 1178 | 1300 |
1:4 | 2コア、8 GB (専用) | 4000000 | 8 | 8986 | 854 | 1480 |
8コア、32 GB (専用) | 16000000 | 64 | 34128 | 1829 | 1970 |
16コア、64 GB (専用) | 32000000 | 96 | 78363 | 1196 | 1420 |
1:8 | 2コア、16 GB (専用) | 8000000 | 8 | 8806 | 867 | 1619 |
4コア、32 GB (専用) | 16000000 | 16 | 20132 | 770 | 1181 |
CPU: メモリ | インスタンスタイプ | operationcount | スレッド | スループット | RAL | WAL |
1:2 | 4コア、8 GB (専用) | 4000000 | 16 | 14127 | 1009 | 1238 |
8コア、16 GB (専用) | 8000000 | 32 | 19887 | 1496 | 1670 |
16コア、32 GB (専用) | 16000000 | 64 | 23120 | 2680 | 2819 |
1:4 | 2コア、8 GB (専用) | 4000000 | 8 | 5132 | 1370 | 1735 |
8コア、32 GB (専用) | 16000000 | 64 | 18929 | 2930 | 3615 |
16コア、64 GB (専用) | 32000000 | 96 | 25612 | 3675 | 4363 |
1:8 | 2コア、16 GB (専用) | 8000000 | 8 | 4841 | 1438 | 1855 |
4コア、32 GB (専用) | 16000000 | 16 | 13051 | 1080 | 1356 |
CPU: メモリ | インスタンスタイプ | operationcount | スレッド | スループット | RAL | WAL |
1:2 | 4コア、8 GB (専用) | 4000000 | 16 | 10266 | 1141 | 1570 |
8コア、16 GB (専用) | 8000000 | 32 | 13556 | 2141 | 2351 |
16コア、32 GB (専用) | 16000000 | 64 | 14447 | 4295 | 4412 |
1:4 | 2コア、8 GB (専用) | 4000000 | 8 | 4226 | 1591 | 1902 |
8コア、32 GB (専用) | 16000000 | 64 | 12055 | 5109 | 5210 |
16コア、64 GB (専用) | 32000000 | 96 | 15216 | 5877 | 8503 |
1:8 | 2コア、16 GB (専用) | 8000000 | 8 | 3874 | 1792 | 2072 |
4コア、32 GB (専用) | 16000000 | 16 | 10083 | 1106 | 1605 |
CPU: メモリ | インスタンスタイプ | operationcount | スレッド | スループット | RAL | WAL |
1:2 | 4コア、8 GB (専用) | 4000000 | 16 | 9960 | 0 | 1592 |
8コア、16 GB (専用) | 8000000 | 32 | 13064 | 0 | 2423 |
16コア、32 GB (専用) | 16000000 | 64 | 13743 | 0 | 4615 |
1:4 | 2コア、8 GB (専用) | 4000000 | 8 | 4287 | 0 | 1860 |
8コア、32 GB (専用) | 16000000 | 64 | 11611 | 0 | 5441 |
16コア、64 GB (専用) | 32000000 | 96 | 14391 | 0 | 8746 |
1:8 | 2コア、16 GB (専用) | 8000000 | 8 | 3854 | 0 | 2067 |
4コア、32 GB (専用) | 16000000 | 16 | 9711 | 0 | 1638 |
結果分析
CPU:Memory=1:2
: 物理サーバーアーキテクチャを使用するインスタンスのパフォーマンスは、クラウドディスクを使用するインスタンスのパフォーマンスよりも優れています。 性能差は、異なる読み取り /書き込み比で約7% 〜50% である。 最大差は、4つのCPUコアと8 GBのメモリを持つインスタンスに存在します。
CPU:Memory=1:4
: 物理サーバーを使用するインスタンスとクラウドディスクを使用するインスタンスのパフォーマンス差が約10% に減少しました。 物理サーバーを使用するインスタンスは書き込みシナリオに適しており、クラウドディスクを使用するインスタンスは読み取りシナリオに適しています。
CPU:Memory=1:8
:
説明
クラウドディスクを使用するインスタンスには、次の利点があります。
すべてのリソースは専用であり、物理サーバーを使用するインスタンスで発生するリソースの意図を回避できます。
計算リソースとストレージリソースは自動的にスケーリングできます。 データ移行は必要ありません。
ESSD (Enhanced SSD) は、PL1、PL2、およびPL3などのパフォーマンスレベルを有する。 これらのレベルは、従量課金インスタンスの方が費用対効果が高くなります。