この質問 で、Windowsタスクマネージャーの[パフォーマンス]タブに実際のCPU頻度が報告されなかった理由を尋ねました。 BIOSで仮想化をオンにしていたことがわかりました。 BIOSで無効にすると、タスクマネージャーに実際のCPU周波数が表示されます(すべてのコアの平均を想定しています)。
では、仮想化がオンになっているときにタスクマネージャーがCPU頻度を報告できない、または報告しないのはなぜですか?
見出し:実際のCPU周波数を示しています。
Windows 8にHyper-Vを(実行するだけでなく)インストールすると、CPUは常に100%で実行されます。速度が変動するときに、Microsoftは仮想マシン(VM)で問題に直面していたと思います。これを修正する1つの方法は、変動させないことです。
私はかなり旅行しているので、必要に応じてHyper-Vをインストール(Windowsの機能でオン)およびアンインストールする必要があります。
Hyper-Vがインストールされているが、実行されていない(my VM was Shutdown))バッテリーの寿命が2時間未満であることに気付きました。通常、インストールするまでに6時間以上かかります。 Hyper-V。
VM(バッテリー寿命が短い)またはバッテリー寿命(VMなし))のトレードオフを行わなければならないのは恥ずかしいことです...さらに悪いことに、そうではありません。 Hyper-Vをオフにしてから再びオンにするだけです。VMを再度セットアップするには、いくつかの作業を行う必要があります。
この情報は、Lenovo X1Carbonで実行されているWindows8.0Proと何時間もの実験に基づいています。 Microsoft Surface Pro2のWindows8.1Proでこれを再試行したことはありません。
更新:Windows 8.1 Surface Pro2でこれを再試行しました。同じ結果です。 Surface Pro3ではまだ試していません。
Hyper-Vをインストールすると、電源管理が無効になるというのは事実ではありません。代わりに、Hyper-Vがインストールされている場合、「親パーティション」と呼ばれる物理コンピューター上のOSは単なる別の仮想マシンです。これは、古いVirtual PC/VirtualServerの動作とは異なります。
したがって、タスクマネージャには、物理CPUではなく仮想CPUが表示されます。また、仮想CPUの場合、ハイパーバイザーが認識できるもののみをレポートできます。例えば。非常に高い負荷で実行されている仮想マシンがある場合でも、非常に低いCPU負荷が表示されます。もう1つの効果は、実際の速度を確認できないことです。
Hyper-Vを実行しているサーバーがいくつかあり、CPU-Zを介して、ワークロードが少ないとコア速度が低下し、負荷が大きいとコア速度が上がることを確認できます。
Win8.1を実行しているラップトップでHyper-Vも有効にしました。タスクマネージャーは、i7-3520MCPUに対して常に2.89GHzを表示しますが、通常の負荷で、バッテリーで最大4〜5時間マシンを使用できます。 Hyper-Vを有効にしない場合と同じです。そしてもちろん、CPU-Zは、ほとんどの場合、はるかに低いコア速度を示します(または、強く押すと最大3.5 GHzになります)。
悪いドライバーがこれに悪影響を与える可能性がありますが、ドライバーや構成をいじることなく、これまでにテストしたどのマシンでも機能しました(Lenovo ThinkpadラップトップおよびXeonE2xxx、E5-xxxxを搭載したSupermicroサーバー)。
これは正常です。 Hyper-Vの役割が有効になっていると、一部の電源管理オプションが無効になります。
少なくとも私のシステムでは、CPUは実際には現在の負荷レベルに応じてクロックアップとクロックダウンを行っています。 CPU-Z などのユーティリティがこれを確認します。スリープと休止状態は引き続き使用できますが(少なくともWindows 8.1 Proでは、Windows Server 2008では使用できません)、プロセッサのクロックレートを制限することはできません。これは、バッテリーで役立ちます。 Hyper-Vによって使用されるCPU時間は、タスクマネージャーでは考慮されません。また、ホストプロセスは常にHyper-Vゲストよりも優先されます。つまり、ホストプロセスがCPUを飽和させると、優先度の低いプロセスであっても、Hyper-VゲストのCPU時間が不足します。