ここでは、本番環境でSync GatewayとCouchbase Serverを使用するさまざまな側面について説明します。
配置
Sync GatewayとCouchbase Serverは、別々のマシンにデプロイされることが想定されます。これは、Sync Gatewayは通常、インターネットからのアクセスを受け付け(ることのできる「アプリケーション層」に配置され)、Couchbase Serverは、インターネットからアクセスされる必要がない(「データベース層」に配置される)ためです。
オンプレミスでホストする場合でも、クラウドでホストする場合でも、これら2つのシステム間で最適なパフォーマンスを実現するには、Sync GatewayとCouchbase Serverを互いに近接させておく必要があります。
サイジングとスケーリング
物理マシン、コンテナ、またはVMによって、単一のSync Gatewayで快適にサポートできるアクティブな同時ユーザーの数が決まります。
または、垂直方向にスケーリングする代わりに、Sync Gatewayノードをクラスターとして実行して水平方向にスケーリングすることもできます。(通常、1つに障害が発生した場合に備えて、高可用性を確保するために、少なくとも2つのSync Gatewayノードが必要になります。)これは、複数のマシンのそれぞれでSync Gatewayの複数のインスタンスを実行し、各着信を指示することによってそれらの負荷分散を行うことを意味します。
クラスターとして構成されるSync Gatewayノードは、特定の処理専用に構成する場合を除いて、同種の構成を持ちます。一方、Sync Gatewayノードを、ドキュメントのインポート処理専用に設定することもできます。
通常、複数のSync Gatewayノードをロードバランサーサーバーの背後に配置することによって、クライアントからの接続要求を調整することが行われます。
チャネルとリビジョンキャッシュ
適切なサイズのSync Gatewayは、数百から数万のチャネル利用にまで拡張できます。ただし、チャネルキャッシュは無制限に増大する可能性があるため、Sync Gatewayは、特に利用規模が数百万チャネルのオーダーで増大するにつれて、垂直方向のスケーリングの限界に達する可能性があります。
Sync Gatewayでは、キャッシュを調整するための多くのオプションが提供され、メモリ不足の問題が発生する可能性なしにSync Gatewayを垂直方向にスケーリングできます。
設定には2つのカテゴリがあります。
-
チャネルキャッシュ:チャネルの数が無制限に増える可能性がある場合に適用されます。
-
リビジョンキャッシュ:ドキュメントサイズが大きい場合に適用されます。
詳細は、以下のURLを参照してください。
エディションによる差異
チャネルとリビジョンキャッシュの調整は、エンタープライズエディションのみの機能です。コミュニティエディションは構成ファイル内のこれらのプロパティはすべて無視され、デフォルト値が適用されます。
パフォーマンスに関する考慮事項
パフォーマンスに関する次の注意事項に注意してください。
-
Sync Gatewayノードはローカル状態を保持しないため、ディスクは必要ありません。
-
Sync Gatewayノードは、RAMにチャネルとリビジョンのメタデータキャッシュを維持します。構成ファイルのキャッシュ値を調整すると、パフォーマンスを向上させることができます。
-
Sync Gatewayは、マルチプロセッシング用に設計されています。軽量スレッドと非同期I/Oを使用します。したがって、Sync GatewayノードにCPUコアを追加すると、ノードの速度を上げることができます。
-
データベースで一般的であるように、書き込みは読み取りよりもシステムに大きな負荷をかけます。特に、すべての書き込み操作はSync関数によって処理され、読み取りアクセス権を持つ他のクライアントへの通知をトリガーします。他のクライアントは読み取りを実行して新しいデータを取得します。
-
継続的なレプリケーションを実行している各クライアントには、変更を通知するためのオープンソケットがあり、これらのソケットはほとんどの時間アイドル状態のままであるため、(ドキュメントが非常に頻繁に変更されている場合を除き、実際のデータトラフィックは少ない一方)発生する可能性のあるオープンソケットの数について留意する必要があります。OSレベルチューニングにより、開く必要のある接続の数を最適化することが推奨されます。
-
Sync GatewayはRAMを使用するように最適化されているため、Linuxのswappiness値を0に変更することでパフォーマンスを向上させることができます(これにより、少なくとも性能が劣化することはありません)(Swap Space and Kernel Swappiness参照)。
関連情報