web-dev-qa-db-ja.com

複数のvCPUまたは複数の同一のVM、どちらが良いですか?

サーバーの1つであるVMwareServer 2を実行する8コアサーバーをアップグレードしようとしています。実行するVMは、ほとんどがWebサーバー、ファイルサーバー、および電子メールサーバーです。具体的には、3つのWebサーバー、2つの電子メール/ファイルサーバー、およびいくつかのJabber/XMPPサーバーを実行します。

このマシンを最初にセットアップしたとき、2つのvCPUで構成された2つのWebサーバーがありました。 いくつかの非常に深刻なパフォーマンスの問題がありました 。当時は、合計5つのvCPUを備えた3つのVMしか実行していませんでした。 VMware Server1およびRAID1も実行していました。 RAID10にアップグレードしたので、これ以上検討することはありません。 :-)

新しいサーバーには、VMwareServerの代わりにVMwareESXiが搭載されます。より高速なプロセッサを搭載した別の8コアマシン、または16コアまたは32コアサーバーのいずれかを検討しています。以前の問題を確実に回避したいと思います。

以前は複数のvCPUでこのような問題が発生したため、プライマリWebサーバーVMを複数の同一のWebサーバーVM(2〜4)に置き換え、それぞれが単一のvCPUを持ち、NFS共有からコンテンツを提供することを計画しました。これらを負荷分散構成に配置します。 SO基本的に1つのVMを少なくとも4つ:2つの小さなWebサーバーVM、ファイルサーバーVM、および負荷分散VMに置き換えます。ここでの私の計画は2つあります。1つは、以前に見た複数のvCPUの使用を回避できること、もう1つは、新しいWebサーバーVMを生成して負荷の増加を処理できることです。

私はまだ単一障害点があるため、負荷分散のすべての利点を得ていないことを理解していることに注意してください

これは良い計画ですか、それとも不要ですか? VMware ESXiは、3年以上前にVMware Server 1よりも複数のvCPUをより適切に処理できますか2〜4個のvCPUを備えた単一の大規模なWebサーバーVM 、または負荷分散構成の単一のvCPUを備えた4つのVM?

7
Josh

VMware ESXiは、3年以上前のVMware Server 1よりも複数のvCPUをより適切に処理できますか?

はい、それらは完全に別個の製品ラインであり、ESXiは複数のvCPUを非常にうまく処理できます。私は現在、各ボックスにマシンを組み合わせて5ノードのvmwareファームを実行しています。各マシンには、必要に応じて1、2、場合によっては4つのプロセッサが搭載されており、非常にうまく機能します。

負荷分散された構成で、単一の大規模なWebサーバーVM 2〜4個のvCPU、または単一のvCPUを備えた4個のVM?

これは、VMWareの質問ではなく、アプリケーション/ Webサイトのテストの質問です。 VMWare(またはその他の最新のベアメタル仮想マシン)はどちらの方法でも実行できます。1つのゲストに多数のvCPUを接続するとコストがかかる可能性がありますが、これは複数のゲストを実行するためのリソースコストとパフォーマンスの問題(または改善、さらに言えば)Webアプリケーションはより分散されたアプローチから実現するかもしれません。

その最後の問題では、それは実際には1つの本当の方法ではなく、テストとアーキテクチャの好みの問題ですが、私の一般的な感覚は、アプリケーションを複数の仮想マシンに簡単に分散できる場合は、いくつかの小さな仮想マシンを構築する方が良いということです1つの大きなものより。必要に応じて物事を移動できるため、柔軟性が向上し、長期的にはパフォーマンスが向上します。言い換えれば、上向きではなく外向きにスケーリングします

物理マシンでは、ライセンスとハードウェアのコストを最大限に活用するために、可能な限り1つのOS「インスタンス」にスケールアップすることを考えていますが、仮想マシンでは、これらの方程式は少し変わります。ライセンスの価格で複数の仮想OSインスタンスを取得できる場合、サーバーインフラストラクチャの設計方法が変わる可能性があります。

編集

http://blog.peacon.co.uk/understanding-the-vcpu/ は、チャットでこの質問について話し合っているときにIainが言及した記事であり、vCPUの割り当てについて考えることが重要である理由を詳細に説明しています。 VMを作成します。

7
Rob Moir

この質問にはさまざまな方法で取り組むことができますが、まずは水平スケーリングと垂直スケーリングから始めます。

水平スケーリング

長所

  • 非常に大きく拡張できます
  • ホスト間で拡張できます(つまり、vmwareクラスター)
  • 耐障害性
  • メンテナンス中のダウンタイムが少ない/ない

短所

  • VM OSとロードバランサーからのより多くのオーバーヘッド
  • より多くのメンテナンス/管理(例:パッチ適用、SSL証明書)
  • Webサーバー全体でのWebサイトバージョン管理の強化
  • ロードバランサーの背後にあるWebサイトには、追加のテストと開発が必要になる場合があります
  • ライセンス?

垂直スケーリング

長所

  • スケーリングが簡単です(別のvCPUを1つまたは2つ、またはそれ以上のメモリを追加するだけです)
  • 管理、ライセンス供与などを行うWebサーバーは1つだけです。

短所

  • メンテナンス/アップグレード中のダウンタイム
  • スケーリングが大きすぎると、VMのパフォーマンスの問題が発生する可能性があります。
  • 本当にスケーリングしません。

ですから、どちらにも良い点と悪い点があり、私は水平スケーリングの大ファンですが、これが私があなたに勧めたいものです:

  1. 特定のポイントに垂直にスケーリングします(すぐにその特​​定のポイントに到達します)。
  2. 水平に進むために時間とお金がかかることについて宿題をしなさい。
  3. 水平スケーリングソリューションをテストするために十分な時間をとってください。
  4. 水平方向にスケーリングする時期に達したら、垂直方向にスケーリングされたサーバーをランプダウンし、クローンを作成して、構成済みのロードバランサーの背後にスローし、ロックンロールを監視できます。

さて、その特定の垂直スケーリングポイントは何ですか?

それはあなたのハードウェアに依存します。

VMwareは、ESX 2.x以降、 vCPUスケジューリング に対して多くのことを行ってきましたが、垂直方向に成長する余地があります。どれだけ実際にあなたが得るCPUに依存します。

最近のパフォーマンスのためにVMのサイズを設定するには、 NUMA(Non-Uniform Memory Access 。基本的に、VMをCPUNUMAノードより大きくしたくない)を理解する必要があります。その分野であなたを導くのに役立ついくつかのリンクがあります:

http://frankdenneman.nl/2010/02/sizing-vms-and-numa-nodes/

http://frankdenneman.nl/2010/09/esx-4-1-numa-scheduling/

http://frankdenneman.nl/2011/01/AMD-magny-cours-and-esx/

ホストでCPUをオーバーサブスクライブしていない限り、CPUは私にとってそれほど大きな問題ではなかったと言って締めくくりたいと思います。代わりに、通常、メモリが原因です。メモリのバルーニング/スワッピングは、非常に顕著なパフォーマンスの問題です。

幸運を!

4
JakeRobinson