Web サーバーとデータベース サーバーが完全に異なる場所にある

Web サーバーとデータベース サーバーが完全に異なる場所にある

Web サーバー (apache/php) とデータベース サーバー (mysql) をまったく異なる場所の異なるホストに配置すると、パフォーマンスにどのような影響がありますか。

編集: これはデータベース集約型の Web アプリケーションなので、すべてのページがデータベースに複数回アクセスします。データベースは通常、Web アプリケーションのボトルネックになりますが、データベース インタラクションの一般的な速度と比較して、ネットワーク速度が重要であるかどうかが気になります。

答え1

これは、2 つの場所間の接続速度に大きく依存します。一部の企業は、データ センター間に高速バックボーンを持っていますが、どうやら、2 つの異なる企業を相手にしているようです。接続はインターネットと、どちらの企業の管理外の回線を経由するため、この質問に対する明確な答えはありません。

可能であれば、これを避けることをお勧めします。本当にこれが最善のアプローチであると思われる場合は、DB からのクエリを軽減するために memcache のようなものを検討してください。

答え2

Web サーバー (apache/php) とデータベース サーバー (mysql) をまったく異なる場所の異なるホストに配置すると、パフォーマンスにどのような影響がありますか。

はい、パフォーマンスへの影響はあります。そして、それらはすべてマイナスです。そのようなシステムは、特に2つのシステムがアップタイムとパフォーマンスの両方に基づいたサービスレベル契約でVPNで接続されている場合、機能します。単に「クラウド」を経由する場合、ネットワークパフォーマンスの一貫性はなく、片喉から絞め殺す接続性またはパフォーマンスが低下した場合。

通常のデータベース操作の速度と比較して、ネットワーク速度が重要かどうか疑問に思っています。

それは完全にあなたのネットワーク速度とあなたのデータベースとアプリケーション。

考慮すべきネットワーク パフォーマンスの側面は 2 つあります。レイテンシとスループットです。両方を考慮する必要があります。

例えば、ユーザーは検索クエリを待つのに(ある程度までは)忍耐強く待つことが多い。ないサイト内を移動する際に、各ページの読み込みが完了するまで待つ必要があります。ユーザーの観点からは、どちらも遅延として見られますが、最初の例はデータベースと Web サーバー間のネットワーク スループットによって重み付けされ、2 番目の例はネットワーク遅延によって重み付けされる可能性があります。

そうではないかもしれません! テストしてみなければ分かりません。

答え3

どのような種類のクエリを実行していますか?

CPU の速度が制限要因となる複雑なクエリを作成する場合、データベースへの接続速度が 10 MB/秒未満で、レイテンシが高いことはそれほど目立たないでしょう。(ただし、非常に複雑なクエリであるか、非常に低性能のマシンである必要があります)

しかし、物事をスピードアップできるかもしれないWeb サーバー マシン上でキャッシュを実行するか、頻繁にアクセスされるデータのコピーを保持する、Web サーバーのローカルに小さな MySQL レプリケーション サーバーをセットアップします。

データベース全体をリモートに配置するとパフォーマンスに悪影響を及ぼしますが、2 つの場所に共存させることは、災害復旧の観点からは間違いなく有益な影響を及ぼします。

答え4

データベース サーバーから要求されるデータの平均サイズはどれくらいですか、2 つのサーバー間で使用可能な帯域幅はどれくらいですか、トラフィック量はどれくらいですか? 致命的なボトルネックが発生するかどうかは、かなり簡単に把握できるはずです。

関連情報