同期本番負荷テスト
Overview
負荷テストとは、アプリが本番環境になったらユーザーがアプリに加えるリクエストをシミュレートすることです。 目的は、パフォーマンスを測定し、実際のユーザーに発生する前に問題を識別して解決することです。
推奨戦略
Node.js SDK を使用して、モバイル アプリの一般的な単一ユーザーのワークロードをシミュレートします。 たとえば、SDK を使用して次のことができます。
一定数の同期された Realm を開きます。
同期された Realm への書込み (write) を一定回数実行します。
バックエンド サーバー呼び出しをシミュレートします(たとえば、Atlas Functions を呼び出した場合)。
シミュレーションの正確な詳細は、アプリの実際のワークロードによって異なります。 たとえば、サーバー側ですでに初期化された同期データを含む Realm を開き、読み取りのユースケースをシミュレートできます。 書込みワークロードをシミュレートするために、さまざまなRealmを開く場合があります。 これらの Realm は、ユースケースに応じて、ユーザーごとの共有 Realm とプライベート Realm が混在する場合があります。 共有 Realm を使用して競合の解決速度をテストし、問題を見つけることができます。 したがって、実際のアプリで Realm Database を使用してシミュレーションを設計する方法を検討してください。
注意
Node.js SDK は、モバイル(iOS、Android、.NET など)SDK と同じ基礎の C++ データベースと同期クライアントを使用します。 したがって、Node.js のヘッドレス、サーバー環境のメリットを享受しながら、本番環境のモバイル アプリと同じコード パスを実行できます。
次に、シングルユーザー シミュレーションを数百または数の同時ノードに配置して、実際のマルチユーザー ワークロードをテストできます。 例:
アプリを Docker コンテナにパッケージ化します。
Kubernetes ジョブの一部としてコンテナを配置します。
ジョブのパラメーターを調整して、実際の本番ワークロードと一致させます。
Kubernetes ジョブの完了にかかる時間を測定し、全体的なパフォーマンスを計算します。
使用できるクラウドベースのサービスとしての Kubernetes はさまざまあります。