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つだけを使用しているように見えます。私は完全に混乱しています:/
各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を作成するだけで、より多くの物理リソースにマップできます。
Server2008およびServer2008 R2のHyper-Vは、仮想トポロジをVMに投影します。これは、複数のコアを備えた単一のCPUのように見えます。これを自分で確認したい場合は、SysinternalsからCoreinfoをダウンロードしてください。 (現在 http://technet.Microsoft.com/en-us/sysinternals/cc835722 )
Server 2012のHyper-Vは、さまざまな種類の仮想トポロジを投影できます。これは、多数の仮想プロセッサを使用してワークロードを構成する場合に役立ちます。デフォルトでは、物理トポロジに一致するトポロジが投影されますが、これをオーバーライドできます。
VMに投影されたトポロジを変更すると、ゲストOSとアプリケーションスタックに異なる構成決定を行わせることで、内部のワークロードのパフォーマンスを変更できることに注意してください。ただし、ゲストトポロジを変更するだけで可能です。ライセンスに準拠する必要はありません。