
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 つのサーバー間で使用可能な帯域幅はどれくらいですか、トラフィック量はどれくらいですか? 致命的なボトルネックが発生するかどうかは、かなり簡単に把握できるはずです。