CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
今回はWindowsの電源プランについて説明します。
この電源プランはノートPCなどを利用する際にバッテリーの利用時間を延ばすための機能というイメージが強いかもしれません。しかし、デスクトップPCやWindows Serverを搭載するサーバー機についても省電力化を目的に電源プランが動作しています。
まず電源プランの変更方法ですが、コントロールパネルから[電源オプション]を選択するかWindows Server 2012 R2の場合はデスクトップのWindowsボタンを右クリックして[電源オプション]を選択することで変更ウィンドウを表示することができます。
電源オプションウィンドウでは最初はバランス、省電力、高パフォーマンスという3つの電源プランを選択することができます。この3つから任意のプランを指定することもできますし、[電源プランの作成]からオリジナルの電源プランを作成することもできます。ただし、Hyper-Vを有効にしているWindows Serverでは編集可能な項目が少なく、ディスプレイの電源を切るタイミングのみ変更可能になっている場合もあります。ですので、今回は最初から選択可能な3つのプランについてのみ説明します。
Windowsでは様々な方法で省電力化を実現していますが、その1つがCPUの省電力機能を利用したものです。最近のCPUは動作クロックを動的に変更して消費電力を少なくしています。この機能はIntel社、AMD社の両方のCPUでそれぞれ搭載されています。Windowsではこれらの両社の機能に対応しています。これらの機能によってCPUの動作クロック数が変化している様子は、パフォーマンスモニタで[Hyper-V Hypervisor Logical Processor(_Total)¥Frequency]などのカウンターによって確認することができます。Hyper-Vを有効にしていない場合は、[Processor Information¥Processor Frequency]などのカウンターで確認できます。
では、この電源プランによって仮想マシンのパフォーマンスはどれくらい変わるでしょうか?実際にベンチマークソフトで性能を測定した結果が以下のグラフです。
電源プランによってパフォーマンスが変わっていることがわかると思います。この違いが発生する理由は前述のCPUの省電力機能によって制御されたCPUの動作クロックが異なることに起因しています。ベンチマークを実行しているときにパフォーマンスモニタで測定したCPUの動作クロックを表示したグラフがこちらです。
今回のテスト環境は定格クロックが2.0GHzのCPUを利用していますが、電源プランが高パフォーマンスの場合は常に定格の2.0GHzで動作しているのに対し、電源プランがバランスの場合は1.2GHzと2.0GHzの間で変動し、省電力プランの場合は最大でも1.5GHzの動作クロックとなります。この違いが仮想マシンのパフォーマンスに影響してきます。ですので、仮想マシンの性能に対する要件がシビアな場合はホスト側で電源プランを高パフォーマンスに変更することをお勧めします。(もちろん、電源プランを高パフォーマンスにした場合は消費電力も増大します)
もう一つ、仮想マシンにパフォーマンスに影響するCPUの機能を紹介します。それはCPUの負荷が高い場合に一時的に定格以上のクロックで動作させる、いわゆるオーバークロック状態にして高い負荷に対応するものです。これもIntel社、AMD社ともにそれぞれCPUに搭載しています。このオーバークロック状態はWindowsの標準ツールでは表示することができないため、サードパーティー製のCPU状態表示ツールなどを利用します。先のベンチマーク実行時にフリーウェアのCoreTempでCPUの動作クロックを測定した結果が以下のグラフです。
先のパフォーマンスモニタとは少し違った値が表示されていることがわかります。パフォーマンスモニタで測定した場合には、CPUの定格クロックである2.0GHzが最大でしたが、CoreTempで測定すると2.6GHzが最大になっています。また、電源プランが高パフォーマンスの場合でも多少動作クロックが変動していることがわかります。また、電源プランがバランスの場合でも定格の2.0GHzを超えたオーバークロック状態になっていることがわかります。このオーバークロック状態をどれくらい維持するかは、CPUへの負荷のかかり方のほかにCPUの温度も関係しています。CPUの温度が低い場合はオーバークロック状態を長時間維持できますし、温度が高い場合はほとんどオーバークロックしない場合もあります。ですので、サーバーを設置する場所の温度はマシンの性能にも影響しますので、適切に冷却できる環境にサーバーを設置するようにしましょう。
このように、Windowsの電源プランは仮想マシンの性能に影響しますので、必要に応じて電源プランを変更するようにしてください。また、ここで紹介したCPUの機能によって動作クロックが常に変化するため、パフォーマンスチューニングの効果測定などで結果がばらついてしまい、判断を難しくしてしまう場合があります。このような場合はサーバーのBIOSなどでCPUの省電力機能やオーバークロック機能を無効化することができます。特に、仮想マシンに高い性能が求められる場合は最初から省電力機能を無効にすることも検討してください。これらの方法はお使いのサーバーベンダーのドキュメントなどで確認してください。
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes