一般的なインストールと仮想マシン - マルチコアでより良いものは何ですか? [閉鎖]

一般的なインストールと仮想マシン - マルチコアでより良いものは何ですか? [閉鎖]

現在、ハイパースレッディングをサポートする64GBのRAMと8コアの新しいサーバーを購入しています。以下を使用してシステムを構築します。

  • nginx。
  • Apache。
  • mysql.mysql.
  • PHP

したがって、問題はパフォーマンスです。コアを最も効率的に使用するには?

単一のオペレーティングシステムをインストールして個々のアプリケーションを調整する方が良いですか、それとも複数の仮想マシンを作成し、各マシンにそのリソース(コアなど)を活用させる方が良いですか?

答え1

仮想マシンを使用することで得られる利点は、パフォーマンス自体の向上ではありません。主なアイデアは、多くの場合、システムを分離したいということです。言い換えれば、あるシステムが別のシステムを妨げることを望まない。プロバイダーはさまざまな顧客のためにデバイスをホストでき、もちろん安全に分離する必要があるため、これはクラウドコンピューティングで重要な役割を果たします。各顧客が自分のシステムを持っているベアメタルアプローチを使用している場合、システムを完全に活用できない可能性があります。単一の物理マシンで複数の仮想マシンをホストすることで、セキュリティ環境を提供するとともに、利用率が向上します。

ただし、仮想マシンをホストするのに固有高い。ソフトウェアは仮想化ハードウェアで非効率的に実行でき、仮想マシンはホストマシンで管理する必要があり、仮想マシン間で冗長性が高くなります。これは補償ではなくパフォーマンスの低下を引き起こします。

お客様の場合、セキュリティや保守上の理由から、各サービスを別々の仮想マシンで実行したい場合があります。いずれかのサービスが破損しても、他のサービスは影響を受けない可能性があります。また、各仮想マシンのスナップショットを簡単に作成でき、メンテナンスなどが簡素化されます。しかし、パフォーマンスの向上については大胆ではありません。

VMの代替はオペレーティングシステムレベルの仮想化たとえば、最近Linuxで人気を集めているコンテナ技術は、ルーストアバウト。複数の完全なオペレーティングシステムを実行することなく、複数の独立したユーザースペースインスタンスを許可することで、パフォーマンスの低下を大幅に削減しながら、仮想マシンの多くの利点を提供します。 Dockerコンテナは展開が簡単で、スナップショットもサポートします。

答え2

もしそうなら、問題はパフォーマンスです。コアを最も効率的に使用するには?

このボックスで他のものが実行されていない場合は、簡単なインストールを行います。しかし、すべてを1つの箱に入れるのは好きではありません。 「ローカル」で実行するのと比較できるものはほとんどありません。 @Benjamin B.が言ったように、Dockerはオーバーヘッドレベルが非常に低い仮想化です。しかし、仮想化する理由がなければ、このような単純な設定では実装しません。少なくとも、プロジェクトに追加の組織オーバーヘッドが追加されます。

単一のオペレーティングシステムを作成し、前述のコンポーネントを効果的に拡張する方が良いですか、それとも複数の仮想マシンを作成し、各マシンにそのコアを活用させる方が良いですか?

なぜこれが良いのですか?コンピュータでUbuntuを実行していて、Ubuntuを使用して仮想マシンをインストールするとします。 Guest-Ubuntuが通常のインストールとは異なる動作をするのはなぜですか?

オペレーティングシステムはリソースを効率的に管理するように構築されているため、簡単なインストールですべてを実行できます。

インスタンス/サービスを簡単に開始して終了したい場合、またはよりきめ細かい分離レベルが必要な場合は、仮想化が興味深いことがあります。

しかし、唯一のボックスなので、簡単にインストールすることができます。

OT:なぜApacheとnginxを使うのですか?

関連情報