以前投稿しましたが、その後気になる情報が出てきましたので書き留めておきます。
まず、コアパーキングとは消費電力を削減するテクノロジーになります。このテクノロジーを使用するためにはCPU及びOSの対応が必要になります。
OSではWindows Server 2008 R2からコアパーキングをサポートしたので、CPUがサポートしていれば自動的に使用してくれるので便利ですね~なんて紹介をしました。
しかし、コアパーキングを含む電源管理が原因で、Hyper-V環境でのトラブルが発生している模様です。
具体的な現象としては、Hyper-Vの仮想端末が突然ブルースクリーンになるとか・・・です
You receive a “Stop 0x0000007E” error on the first restart after you enable Hyper-V on a Windows Server 2008 R2-based computer
http://support.microsoft.com/kb/974598/en-us
Stop error message on an Intel Xeon 5500 series processor-based computer that is running Windows Server 2008 R2 and that has the Hyper-V role installed: “0x00000101 – CLOCK_WATCHDOG_TIMEOUT”
http://support.microsoft.com/kb/975530/en-us
特に問題なのはNehalemにおける問題として修正プログラムがあがっているのですが、それでも駄目という場合があるらしい
ちなみに対象プロセッサーとしては以下のものが報告されています
- Intel Xeon Processor 5500
- Intel Core i7-800
- Intel Core i5-700
ですので、落ち着くまでにはまだ時間がかかりそうな予感です
では対処方法としてはどうすればいいのか?
これはBIOSの設定で、C-State を無効にすることによって、結果的にOSでのコアパーキング機能を無効化すればいいようです。
ちなみにちょっと調べてみたのですが、電源管理ではACPIのC-StateとP-Stateがありますが、どんな機能何だろう?
C-Stateは各コアのアクティブなプロセスがなくなりアイドル状態になったときにその状態を遷移させて(C0~C6)、アイドル時の消費電力を0Wに限りなく近づけることにより消費電力を削減する機能。
P-Stateとは何か?そもそも各CPUは複数のP-Stateが存在し、プロセッサの動作周波数と電圧が決まっており,コアごとにP-Stateを切り替えられます。よって、動作周波数を下げれば電圧も下がり、消費電力も下がるということになります。
たとえば、クアッドコアAMD Opteron 2356 プロセッサ(2.30GHz)には、P0(2.30GHz)、P1(2.0GHz)、P2(1.7GHz)、P3(1.4GHz)、P4(1.15GHz)の5段階ものP-Stateが存在するので、サーバーの負荷状況に応じて動的にP-Stateを切り替えれば,消費電力も削減できますね。
しかし、クロックを落とす=パフォーマンスを低下させるので、負荷の軽い時間帯だけ落とすといった限定的な使い方になると思われます。
よって、トータルな電源管理であるACPIでは、C-StateとP-Stateを組み合わせてパフォーマンスと消費電力のバランスを取っているということになりますね。
*ここら辺の話は、様々な情報を組み合わせて私なりの理解となりますので間違っていた場合は指摘いただければ幸いです
さて、ちょっとネガティブな情報でしたが、ポジティブ情報も書いておきます。これは実際にCTCの杵島さんに聞いたお話ですがPen4 ベースの Xeon 系のサーバーで消費電力を比べるとアイドル時で約4割近く消費電力は下がるそうです。杵島さんが参加された最新CPUの検証結果がIntelよりダウンロードできます。
2010年9月6日追記
An update rollup package for the Hyper-V role in Windows Server 2008 R2: August 24, 2010
http://support.microsoft.com/kb/2264080/en-us
これらの問題の修正プログラムが出たようです。
コメント
こんにちは。記事を拝見したところ、コアパーキングとスロットリングを混同されているようで、内容が誤っています。スロットリングは、C-StateやP-Stateで消費電力を下げる機能です。以前のOSから実装されており、例えばWindows XPのパフォーマンスモニタのProcessorカウンタにはC-Stateの状況を計測する、%C1 Time , %C2 Timeなどがあります。コアパーキングは、特定のCPUに負荷を集中させ、その他のCPUを可能な限りアイドル状態に保ちます。コアパーキングの機能はここまでです。コアパーキングによってアイドル状態になったCPUは、状況に応じてスロットリングがかかり、その結果消費電力は抑制されます。広義に解釈すると、コアパーキングが消費電力を抑制するとはいえますが、細かく言うと間違いになります。上記の文章で言うと、"BIOSの設定で、C-State を無効にすることによって、結果的にOSでのコアパーキング機能を無効化すればいいようです。 "は間違いです。なお、C-Stateは、コアパーキングに関わりなく、アイドル状態になればより深いC-Stateへ遷移していきます。このため、上記文章の"コアパーキングを含む電源管理が原因で、Hyper-V環境でのトラブルが発生している"も間違いです。上記で紹介されている問題を回避するためには、コアパーキングを無効にするのではなく、C-Stateの遷移を無効にする必要があります。