私たちのITが作成したVMは、私が要求した4つではなく2つのCPUが割り当てられています。その理由は、VMが4つではなく2つのCPUを使用するとパフォーマンスが向上するためです。理論的根拠は、VMハイパーバイザー(この場合はVMWare))がすべてのCPUが使用可能になるのを待ってから、それらのいずれかを使用することです。したがって、4 2 CPUより。
このステートメントは意味がありますか?
これは以前は真実でしたが、もはや唯一の真実ではありません。
彼らが言及しているのは Strict Co-Scheduling です。
何よりも重要なのは、厳密なコスケジューリングアルゴリズムでは、遅れているvCPUが存在するため、仮想マシン全体がコストップされることです。緩やかな協調スケジューリングアルゴリズムでは、先行するvCPUが、最も遅い兄弟vCPUに対するスキューに基づいて協調停止するかどうかを決定します
さて、ifホストには4つのスレッドしかないので、すべてのスレッドを割り当てるのはばかげています。 If2つのプロセッサがあり、プロセッサごとに4つのスレッドがある場合、あなたはmightハイパーバイザーがvNUMを同じNUMAノードに保持してメモリアクセスを高速化する必要があるため、単一のプロセッサのすべてのコンテンツを割り当てる必要はなく、ソケット全体を単一の= VM(その12ページを参照PDF上記))。
したがって、vCPUの数が少ない可能性のあるシナリオが複数のシナリオよりも優れている場合がありますが、100%の確率でそうなるとは限りません。
以上のように、私はゲストごとに3つを超えるvCPUを割り当てることはほとんどありません。デフォルトでは、全員に2が割り当てられ、ワークロードが重い場合は3、SQL Serverや非常に重いバッチ処理VMなどのユーザー、または多数のユーザーがいるターミナルサーバーの場合は4になります。
これは、基礎となるハイパーバイザーとそれを実行する管理者に大きく依存します。説明しましょう:
これから何を学ぶことができますか?常に最小限のリソースでVMを作成し、必要に応じて増やします。スケールアップではなく、常にスケールアウトすれば、どこでもアプリを実行できるようになります。
ハイパーバイザーで発生する可能性のあるロックのため、2 CPUの方が4 CPUよりも高速である可能性があります。
はい、ステートメントは一般的に理にかなっています。ただし、正確な構成とワークロードをテストする必要があります。実際にそれらを利用できる場合は、より多くのCPUの方が良い場合があります。ただし、実際にそれほど多くの並列処理がない場合、CPUが少ない状態で構成されたVMは、CPUレディ状態の一時停止によるスローダウンを回避するため、わずかにパフォーマンスが向上します。
多くのVMでvCPUを減らして、大部分のスループットが向上しました。一握りは悪化し、vCPU数を増やす必要がありました。