ApsaraDB for MongoDB は、Apsara 分散システムと高信頼性ストレージエンジンに基づいて開発されており、MongoDB プロトコルと互換性があります。 ApsaraDB for MongoDB は、マルチノードアーキテクチャを使用して高可用性を確保し、弾性スケーリング、ディザスタリカバリ、バックアップとロールバック、パフォーマンス最適化などの機能を提供します。
テスト環境
構成項目 | ストレステスト用の ECS インスタンス | 物理サーバーを使用する ApsaraDB for MongoDB インスタンス | クラウドディスクを使用する ApsaraDB for MongoDB インスタンス |
リージョンとゾーン | 杭州ゾーン H | 杭州ゾーン H | 杭州ゾーン H |
ネットワークタイプ | VPC | VPC | VPC |
インスタンスファミリー | c6e、パフォーマンスが向上したコンピューティング最適化インスタンスファミリー | 汎用および専用 | 専用 |
インスタンスタイプ | ecs.c6e.2xlarge (8 コア、16 GB) | さまざまな仕様が利用可能です。 詳細については、「テスト結果」をご参照ください。 | さまざまな仕様が利用可能です。 詳細については、「テスト結果」をご参照ください。 |
ストレージタイプ | PL1 ESSD | ローカル SSD | PL1 ESSD |
ストレージ容量 | - | 500 GB | 500 GB |
トポロジー | - | 標準レプリカセットインスタンス(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.104 ミリ秒です。
テストツール
オープンソースの YCSB 0.17.0 をストレステストに使用します。
YCSB は、複数のデータベースのパフォーマンステストで使用できる Java ツールです。 インストールと使用方法の詳細については、「YCSB」をご参照ください。
テスト手順
ECS インスタンスの [プライマリプライベート IP アドレス] を、物理サーバーまたはクラウドディスクを使用する ApsaraDB for MongoDB インスタンスのホワイトリストに追加します。 詳細については、「インスタンスのホワイトリストを変更する」をご参照ください。
説明ECS コンソール にログインし、[インスタンスの詳細] ページの [構成情報] セクションで [プライマリプライベート IP アドレス] を表示できます。
ECS インスタンスに接続します。 詳細については、「ECS インスタンスに接続する」をご参照ください。
YCSB を使用してテストデータをロードします。
./bin/ycsb load mongodb -s -p workload=site.ycsb.workloads.CoreWorkload -p recordcount=1000000 -p mongodb.url="mongodb://test:****@dds-bp13e84d11****.mongodb.rds.aliyuncs.com:3717/admin" -threads 8次のパラメーター値を変更します。
recordcount=1000000: ApsaraDB for MongoDB インスタンスにロードされるデータレコードの総数。mongodb.url="mongodb://test:****@dds-bp13e84d11****.mongodb.rds.aliyuncs.com:3717/admin": ApsaraDB for MongoDB インスタンスのエンドポイント。 この例では、データベースアカウントは test、データベースは admin です。説明ApsaraDB for MongoDB コンソール にログインし、[データベース接続] ページの [内部接続 - VPC] セクションでインスタンスエンドポイントを表示できます。
threads 8: クライアント上の同時スレッド数。
次のテストコマンドを実行して、パフォーマンステストを実行します。
./bin/ycsb run mongodb -s -p workload=site.ycsb.workloads.CoreWorkload -p recordcount=1000000 -p operationcount=5000000 -p insertproportion=0 -p readproportion=50 -p updateproportion=50 -p requestdistribution=zipfian -p mongodb.url="mongodb://test:****@dds-bp13e84d11****.mongodb.rds.aliyuncs.com:3717/admin" -threads 8次のパラメーター値を変更します。
recordcount=1000000: ApsaraDB for MongoDB インスタンスにロードされるデータレコードの総数。operationcount=5000000: 読み取り / 書き込み操作の総数。insertproportion=0: ロード操作の比率。readproportion=50: 読み取り操作の比率。updateproportion=50: 更新操作の比率。mongodb.url="mongodb://test:****@dds-bp13e84d11****.mongodb.rds.aliyuncs.com:3717/admin": ApsaraDB for MongoDB インスタンスのエンドポイント。 この例では、データベースアカウントは test、データベースは admin です。説明ApsaraDB for MongoDB コンソール にログインし、[データベース接続] ページの [内部接続 - VPC] セクションでインスタンスエンドポイントを表示できます。
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: クライアント上の同時スレッド数。throughput: ApsaraDB for MongoDB インスタンスのスループット。 単位:1 秒あたりの操作数 (OPS)。RAL: 読み取り操作の平均レイテンシ。 単位:マイクロ秒 (us)。WAL: 書き込み操作の平均レイテンシ。 単位:マイクロ秒 (us)。
このトピックでは、RAL または WAL が 0 に設定されている場合、読み取りまたは書き込み操作は含まれません。
以下のセクションでは、さまざまな読み取り / 書き込み比率における、物理サーバーを使用する ApsaraDB for MongoDB インスタンスとクラウドディスクを使用する ApsaraDB for MongoDB インスタンスのテスト結果とパフォーマンス比較を示します。
MongoDB 4.2 を実行し、物理サーバーを使用するインスタンス
MongoDB 4.4 を実行し、クラウドディスクを使用するインスタンス
パフォーマンス比較チャート
結果分析
CPU:Memory=1:2: 物理サーバーを使用する ApsaraDB for MongoDB インスタンスは、クラウドディスクを使用するインスタンスよりも優れたパフォーマンスを提供します。パフォーマンスの差は、読み取り/書き込み比率が異なる場合、約 7% ~ 50% です。最大の差は、4 CPU コアと 8 GB のメモリを搭載した ApsaraDB for MongoDB インスタンスに存在します。CPU:Memory=1:4: 物理サーバーを使用する ApsaraDB for MongoDB インスタンスとクラウドディスクを使用するインスタンスのパフォーマンスの差は約 10% に減少します。物理サーバーを使用する ApsaraDB for MongoDB インスタンスは書き込みシナリオに適しており、クラウドディスクを使用するインスタンスは読み取りシナリオに適しています。CPU:Memory=1:8:物理サーバーを使用する ApsaraDB for MongoDB インスタンスは、クラウドディスクを使用するインスタンスとほぼ同じパフォーマンスを提供します。
メモリの増加に伴い、クラウドディスクを使用する ApsaraDB for MongoDB インスタンスは、物理サーバーを使用するインスタンスよりも優れたパフォーマンスを提供します。最大の差は、4 CPU コアと 32 GB のメモリを搭載した ApsaraDB for MongoDB インスタンスに存在します。
クラウドディスクを使用する ApsaraDB for MongoDB インスタンスには、次の利点があります。
すべてのリソースが専用であるため、物理サーバーを使用する ApsaraDB for MongoDB インスタンスで発生するリソース競合を回避できます。
コンピューティングリソースとストレージリソースを自動的にスケーリングできます。データ移行は必要ありません。
ESSD には、PL1、PL2、PL3 などのパフォーマンスレベル (PL) があります。これらのレベルの ESSD は、従量課金制の ApsaraDB for MongoDB インスタンスにとって費用対効果が高くなります。





