質問: **■実現したいこと** Hyper-Vにて1台の仮想サーバーを立て、物理サーバーに4コアCPUを搭載したのと同等レベルの性能を出したいと思っています。 OSはWindowsServer2016想定です。 **■確認したいこと(CPU決定にあたって)** (1) 近年のXeonのCPUは「8コア16スレッド」等、スレッド数がコア数の2倍になっていることが多いと思いますが、これはハイパースレッディングがデフォルトで有効である前提の数字なのでしょうか。 (2) ホストOSに「8コア16スレッドのCPU1個」を搭載したとします。 Hyper-VのゲストOSに割り当てる仮想プロセッサ数は、物理CPUのスレッド数単位で割り当てられると思います。 この場合、割り当てるべき仮想プロセッサ数は「8」以上ということになりますでしょうか? 「物理コア数=仮想プロセッサ数」ではなく、「物理スレッド数=仮想プロセッサ数」になるかと思いますので、ここで「4」を割りあててしまうと、4コア物理CPUと同等レベルの性能は満たせなくなってしまうのではと思いました。 考え方はあっていますでしょうか? ※厳密には「=」の性能ではないかと思いますが、CPUを決定する際のおおまかな考え方として教えてください。
回答: (1)スレッド数がコア数の2倍になっているのは、ハイパースレッディングがONになっている前提です。答えはYesです。 (2)"物理サーバーに4コアCPUを搭載したのと同等レベルの性能"を出したいのであれば、仮想CPUを4個割り当てれば良いです。 上記は、物理コア8個に対して、仮想CPUを8個まで割り当てている分には性能の劣化は起きないでしょう。他の処理が入らないという前提です。 多くの仮想CPUが割り当てられ、性能を保証したい仮想OS以外でCPUを食う仮想OSがあれば性能の劣化は必ず起きます。