
やあ、カウボーイとカウガール、
Apache で静的コンテンツを提供する VM (KVM または ESXi) があり、Tomcat でビデオ ストリーミング Web アプリケーションを提供している場合、同じキットの同じ VM で複数のインスタンスを実行して負荷分散するロジックはありますか? 同じ着信 Web 要求を受け取ると、1 つのインスタンスに割り当てられるはずだったリソースを共有するだけなので、概念的には無意味に思えますが、2 つ、3 つ、またはそれ以上の同一の VM を使用して、おそらく Tomcat 内でのスレッド パフォーマンスなど、より高い容量を活用できるシナリオは想像できますが、私が思いつく理由はいずれも、コーディングの誤りや回避策の領域であって、ベスト プラクティスの設計ではないことを示唆する傾向があります。ここでのハードウェアの例は、8 または 12 個のコアと 64 GB の RAM を備え、何らかの方法で約 4000 の同時メディア接続を提供する HP DL380 のようなかなり高性能なボックスです。
更新: 冗長性やパッチ適用などのその他の利点に関しては、このシナリオは最大 100 台の物理マシンに複製され、すべて負荷分散される可能性が高いため、問題にはなりません。
更新2: 外部 LB から複数の同一サービスを負荷分散する機能についても懸念があります。LB から接続遅延などを監視する場合は、2 つの VM (1 つは 5 つの接続、もう 1 つは 500 の接続) が必要です。すべき実際には、両方とも同じプールからリソースを取得しているため (VM CPU 固定などなし)、同じように機能しているように見えます。1 つのボックスに負荷をかけると、もう 1 つの静かなボックスも機能しなくなるため、接続の分散が非常に異常で混乱を招きます。
ありがとう
クリス
答え1
これを実行する唯一の理由は、(a) パッチ適用などの運用上の利点が得られる場合、または (b) ハイパーバイザーが vCPU を実際の CPU に線形にマッピングできないことが判明した場合 (つまり、2 x 4 vCPU ゲストの方が 1 x 8 vCPU ゲストよりもスループットが優れている) です。ただし、これはストレスまたは実際の運用負荷を通じてのみ証明できます。
答え2
仮想マシンには限られた数のリソース (プラットフォームに応じて 4 ~ 8 個の vCPU) しか設定できないため、Web サーバーがホスト ハードウェアのすべてのリソースにアクセスできるようにするには、複数のゲストを実行する必要があります。
また、複数のゲストがいる場合は、エンドユーザーへのサービスを中断することなく、パッチ適用のためにゲストをオフラインにすることができます。