より早く、軽く、クールになる――Windows 7とWindows Server 2008 R2Tech・Ed 2009 Session Report

Tech Ed Japan 2009のセッション内で語られた、Windows 7とWindows Server 2008 R2の「フットプリント、パフォーマンス、消費電力」に関する改善点を紹介する。

» 2009年08月28日 11時50分 公開
[下村恭(ハンズシステム),ITmedia]

 出荷段階に入ったマイクロソフトの新しいOSであるWindows 7とWindows Server 2008 R2は、パフォーマンスの向上、省電力化など改善点で注目されている。では、どのような部分を改善してパフォーマンスアップを実現し、省電力化を行ったのか。

 Windows 7はVistaに比べて動作が軽くなったとされている。Tech Ed Japan 2009のキーノートにおいても、Windows 7の軽快さを強調するデモが行われた。例えばATOMプロセッサや、今となっては古くなってしまったPentium Mプロセッサを搭載した非力なマシンでも、普通に動作している様子が紹介されていた。では、どのようにしてパフォーマンスアップを実現したのだろう?

フットプリントの削減

 Winodws 7とWindows Server 2008 R2は、同じOSカーネルを使用する。どちらもバージョン6.1で、VistaとServer 2008のときと同様、同じソースツリーからビルドされている。これは、「OSカーネルに関する改善点は、Winodws 7とWindows Server 2008 R2のどちらにも当てはまる」ということを意味する(ただし、Windows Server 2008 R2はWindows 7と異なり64bit版のみ提供される)。

 クライアントOSであるWindows 7も、サーバOSであるWindows Server 2008 R2でも、フットプリントの削減でOSを軽くした。フットプリントとは、OSがディスク上やメモリ上で占める大きさを指し、ディスク上のフットプリントとはインストールする際に要求されるディスク容量のことであり、メモリ上のフットプリントとは動作時にOSが使用するメモリ容量のことだ。

 ディスクやメモリのフットプリントが小さくなるということは、ディスク容量やメモリ容量の小さい、非力なマシンでも動作できることを意味する。もちろん、余裕のあるマシンであれば、それだけアプリケーションの動作に余裕が生まれることになる。

メモリ使用量 サーバOSであるWindows 2003 Serverと、Windows Server 2008 SP1、Windows Server 2008 R2のアイドル時(何もしていない時)のメモリ使用量を比べたもの。2003と比べて2008 R2では、約半分になっている(Tech Ed Japan 2009,セッションT1-401より)

メモリ使用の最適化

 また、メモリの使い方を最適化することで、パフォーマンスアップも図られている。Windows VistaやWindows Server 20008では、「ファイルをコピーしている間にパフォーマンスが落ち込む」という事態が見受けられたが、これは、メモリマネージャがプロセスなどに割り当てる物理メモリ領域(ワーキングセット)を、ファイルコピーの際に使用しているシステムキャッシュと、OSを動作させるシステムコードで共有していたため、システムキャッシュがシステムコードを追い出し、仮想メモリへページアウトさせることで、パフォーマンスに影響していたためのようだ。

 Windows 7とWindows Server 2008 R2では、システムキャッシュとPaged Pool、Pagableシステムコードを別のワーキングセットで管理し、それぞれの使用量に応じてメモリ使用量も最適化するようになった。このため、システムキャッシュがシステムコードに影響することがなくなり、パフォーマンス低下を防止できる。

 UIを多用するクライアントOSで、特に効果が期待されるのが、デスクトップウィンドウマネージャ(DWM)の最適化だ。DWMはデスクトップとウィンドウを管理しているのだが、Vistaではメモリの消費が激しかった。Windows 7では改善され、メモリの消費量が抑えられている。

デスクトップウィンドウマネージャ(DWM)の最適化 Vistaでは、開いているウィンドウの数に比例してDWMのメモリ使用量が増えているが、Windows 7ではウィンドウの数にかかわらずメモリ使用量が一定になっている(Tech Ed Japan 2009,セッションT1-201より)

消費電力を抑える「コアパーキング」

 近年、エコ対策としてデータセンターの消費電力を抑える取り組みが取りざたされているが、Windows Server 2008 R2でも、省電力化の取り組みがなされている。

 最近のプロセッサはマルチコアが当たり前となり、サーバにおいては(あるいはハイエンドのクライアントマシンでも)マルチプロセッサも特別なことではない。論理プロセッサ(LP)の数が4個や8個というのも珍しくなくなっている。今までOSのビット数がLPの上限数(32bit Windowsでは32個、64bitでは64個)となっていた制限を取り払う必要が出てきている。そのため、Windows Server 2008 R2では最大256個のLP(64個のグループが4グループ)が使えるようになった。

 大量のLPが使えるサーバマシンでは、プロセッサの制御が消費電力を抑えるカギとなる。Windows Server 2008 R2の登場までは、「すべてのプロセッサに平等にタスクを割り当て、なるべくたくさんのLPを使いきる」という制御をしていた。Windows Server 2008 R2では、コアパーキングというテクノロジーを導入し、なるべく少ないLPで動作するようにしている。

 例えば、2つのLPを含む2つのプロセッサ、つまり合計4個のLPを搭載するマシンで、CPU使用率が50%未満のタスクが4つあった場合、従来であれば、4つのLPすべてに4つのタスクを割り当てていた。

 これを、Winodws Server 2008 R2からは、2つのLPに4つのタスクを割り当て、使用しないプロセッサを「パーク」する、つまり、電源を供給しないようにしている。

コアパーキングの動作イメージ。画像左が従来の制御で、画像右がWinodws Server 2008 R2における制御。Winodws Server 2008 R2では、2つのLPに4つのタスクを割り当て、使用しないプロセッサには電源そのものを供給しない(Tech Ed Japan 2009、セッションT1-401より)

 ここでは模式的に、「CPU使用率が50%未満」と表現しているが、実際には、計算された平均CPU使用率はパワーマネージャが管理するパーキングポリシーと比較され、コアパーキング/アンパーキングを最適な状態で制御している。もちろん、タスクスケジューラはパークされたコアを使用しないように連携している。

 ただ、この「コアパーキング」テクノロジーは、クライアントOSであるWindows 7では使用されない。プロセッサのパーク/アンパークにはそれなりのコストが必要なため、CPU使用率がある程度一定のサーバでは効果が期待できるが、クライアントでは「0%か100%か」という極端なCPU使用率となってしまい、効果が期待できないからだ。それでも、多数のプロセッサを搭載したサーバマシンを多く抱えるデータセンターなどでは、高い効果を期待できる。

企業向け情報を集約した「ITmedia エンタープライズ」も併せてチェック

関連キーワード

Windows Server 2008 R2 | Windows 7 | Tech・Ed


関連ホワイトペーパー

Windows Server 2008


Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ