web-dev-qa-db-ja.com

Hyper-Vゲストには、複数のvCPUが割り当てられている場合、複数のCPU(ソケット)または複数のCPUコアが表示されますか?

SQL Server 2008 Expressを、2つのvCPUを搭載したHyper-Vベースの仮想マシンで実行しています。 SQL Server 2012 Expressを読んでいて、CPUが「1ソケットまたは4コアのいずれか少ない方に制限されている」ことに気付きました( http://msdn.Microsoft.com/en-us/library/ cc645993(v = SQL.110).aspx

私の質問は、CPU /コアに対するSQLServer 2012の制限がvCPUにどのように変換されるかということです。それらは「プロセッサ」ですか、それとも「コア」ですか?

編集:

私はこれを見つけました: vCPUは1つのソケットと同じですか、それとも単一のコアですか?

基本的に解決策は、CPU-Zをダウンロードしてチェックすることです。私の2x vCPU VPSでは、CPUZは1コア2スレッドを示しているので、SQLExpressは両方のvCPUで動作するはずです。ただし、プロセッサアフィニティ構成に入ると、2つのプロセッサが表示され、VPSに割り当てられたvCPUの1つだけを使用しているように見えます。私は完全に混乱しています:/

3
Filip

各vCPUは、ゲストOS内から単一のCPUとしてカウントされます。つまり、ゲストOSとその内部のアプリケーション、各物理コアは単一のCPUです。

仮想化は物理ハードウェアを抽象化するため、すべてのゲストOSとその中のすべてのアプリケーションは、ハイパーバイザーがそれらに渡す値です。あなたの場合、ハイパーバイザーはOSに2つのCPUがあることを通知します。これは、2つの仮想CPUを持つように設定する方法だからです。したがって、SQLがCPUの数を調べると、SQLは割り当てられた2つの[仮想] CPUを確認するため、SQLExpressは1つを使用するように制限します。

私はこれを追加する必要があると思います: Hyper-VでvCPUを構成する方法についての簡単で汚い 。 SQL Expressでより多くのCPUリソースを使用する場合は、1つのvCPUを配置して、より多くの物理プロセッサやより高いリソース制限にマップします。これにより、SQL Expressは、SQL ExpressのCPUライセンス制限にぶつかることなく、ホストが割り当てることができるCPUリソースをできるだけ多く使用できるようになります。

ああ、でも既存のOSでは変更するのでこれをしないでください プロセッサの数 Windows OSの単一CPUと複数CPUの間で問題が発生すると、OSが不安定になります。新しいOSをインストールして新しいVMを作成します。今回は、1つのvCPUを作成するだけで、より多くの物理リソースにマップできます。

4
HopelessN00b

Server2008およびServer2008 R2のHyper-Vは、仮想トポロジをVMに投影します。これは、複数のコアを備えた単一のCPUのように見えます。これを自分で確認したい場合は、SysinternalsからCoreinfoをダウンロードしてください。 (現在 http://technet.Microsoft.com/en-us/sysinternals/cc835722

Server 2012のHyper-Vは、さまざまな種類の仮想トポロジを投影できます。これは、多数の仮想プロセッサを使用してワークロードを構成する場合に役立ちます。デフォルトでは、物理トポロジに一致するトポロジが投影されますが、これをオーバーライドできます。

VMに投影されたトポロジを変更すると、ゲストOSとアプリケーションスタックに異なる構成決定を行わせることで、内部のワークロードのパフォーマンスを変更できることに注意してください。ただし、ゲストトポロジを変更するだけで可能です。ライセンスに準拠する必要はありません。

2
Jake Oshins