こんにちは、阿久津です。今回はWindows 7(ビルド7000。以下、Windows 7ベータ版)の使用時に遭遇したトラブルレポートをお送りします。筆者はThinkPad T60pにWindows 7ベータ版を導入し、検証がてらWebブラウジングや原稿執筆など日常業務をこなしていますが、気になったのが無線LANのパフォーマンス。データの送受信量が少ないWebブラウジング中は気になりませんが、画面撮影した画像データをサーバにコピーする際、転送レートが落ちていることに気付きました。

これが体感的なものなのか、物理的に遅くなっているか確認するためベンチマークで実数値を計ることに。ネットワークパフォーマンスのベンチマークを取るnuttcpのサーバ側をLAN内に設置したDebian GNU/Linuxに、クライアント側をWindows 7ベータ版とデュアルブートで導入しているWindows Vista(Ultimate、SP1)に導入。802.11gの無線LANによる10秒間の平均転送レートを計測してみました。すると、Windows Vistaは約25Mbps、Windows 7は約16Mbpsと10Mbps程度もダウン。体感的に数値的にも遅くなっていることがハッキリとしました。念のため、電源管理オプションも省電力モードや最大パフォーマンスモードに切り替えてみましたが、大きな差は生じません。

次に気になったのがネットワークドライバの設定。デバイスドライバの一部には、<詳細設定>タブでパラメータによる微調整を行なえるものがありますが、Windows VistaとWindows 7ベータ版のそれを見比べてみても大きな差はありません。強いて挙げると「Receive Buffers」の数値が異なっていましたが、ここを調整しても結果は同じでした(図1)。

図1: デバイスドライバのパラメータの差異は少なく、Receive Buffersの数値がWindows Vistaでは64、Windows 7ベータ版では256と差異はありましたが、変更してもベンチマークの数値は同じでした

最後はドライバの差異に注目。Windows VistaではAtheros社がLenovo社に提供している公式なドライバを導入しており、Windows 7ベータ版はWindows Update経由で導入したAtheros社製を導入していますが、気になるのはMicrosoft謹製のドライバが併用されている点。「Vwifibus.sys」ファイルを調べてみますと、Virtual WiFi Bus Driverという説明があり、仮想Wi-Fiバスポートアダプタとして共に動作しています。技術資料が少ないため確証もなく、想定の域を超えませんが、一般的にバスドライバは、ハードウェアレイヤとバスを制御するインタフェースを提供するものであることを鑑みますと、Windows 7ベータ版における無線LANの管理に用いられているのかもしれません(図2~3)。

図2: Windows Vistaで使用していたドライバは2007年リリースのバージョン7.3.127。執筆時点の最新版は7.6.0.96fでした

図3: Windows 7もAtheros社製でしたが、Microsoft製のデバイスドライバが併用されています

少々気になりますが同ドライバを単独で外せないため、次のポイントであるドライバ自身の変更にチャレンジしてみました。Thinkpad用として配布されているAtheros社のWindows Vista用最新ドライバを導入したところ、シャットダウン時やログオン時に、NETIO.SYSを起因とするBSoDが発生し、まったく使い物になりません。その後も正常に起動しないなどトラブルが多発するため、システムの復元により初期状態に戻しましたが、現時点ではパフォーマンスダウンの要因はドライバにあるとの結論に達しました。

さすがAtheros社もWindows 7用ドライバはまだ配布していないため、ここで検証を終えざるを得ません。デバイスドライバの開発に必要なWDK(Windows Driver Kit) for Windows 7も、まだベータ版であり、Microsoft Connect経由のベータテストに参加するか、MSDNサブスクリプションの契約が必要となるため、デバイスベンダの対応待ち。メモリ管理周辺も改善されたWindows 7からWindows Vistaに戻るのは体感的にも厳しいため、各デバイスベンダの早期対応を望みつつ、低速な無線LANに甘んじたいと思います。

複数のデバイスをサポートしたReadyBoost

また、メモリ周りで気になったのが、ReadyBoostに関する新機能。ご存じのとおりWindows Vistaには、フラッシュメモリデバイスを使用し、使用頻度の高いデータをキャッシュするReadyBoostという機能が用意されています。しかし、同ロジックの効果が発揮されるのは、物理メモリの搭載容量が1GB程度の環境であり、2GB以上の環境ではさほど差が生じません。そもそもWindows Vista自身がメモリイーター(大食い)なOSであるため、物理メモリが1GBという環境で同OSを使用するのは非現実的。本末転倒な話ですが、実際にReadyBoostの恩恵を受けるユーザーも少なかったのではないでしょうか。

Windows 7にもReadyBoostは搭載されていますが、Windows Vistaから大きく進化したポイントとして、複数のフラッシュメモリデバイスに対応した点が挙げられます。Windows 7ベータ版を導入したコンピュータにUSBメモリを接続し、<ReadyBoost>タブを開きますと、Windows Vistaのそれと異なり、<このデバイスをReadyBoost専用にする>という項目が新たに用意されました(図4)。

図4: Windows 7でUSBメモリのプロパティダイアログにある<ReadyBoost>タブには、新たに<このデバイスをReadyBoost専用にする>という項目が用意されました

同項目自体はWindows VistaでUSBメモリをReadyBoostデバイスとして使用している際、空き領域があるとWindows Media Playerがデータデバイスとして認識してしまう問題を改善するために設けられたものと推測します。Windows 7のReadyBoostに関して気になるのが、従来のデバイス数制限を排除している点。Windows Vistaでは複数のUSBメモリをコンピュータに接続しても使用できるのは一台のみでしたが、Windows 7ではコンピュータに接続した数だけReadyBoost用デバイスとして使用可能になりました(図5~6)。

図5: Windows VistaではReadyBoostデバイスは一台しか使用できず、画面のように「既にキャッシュが存在します~」というメッセージが表示されていました

図6: Windows 7では複数のフラッシュメモリデバイスをReadyBoostデバイスとして使用できます

図6の画面でFドライブが割り当てられているUSBメモリは、8GBながらも4GBまでしかReadyBoost領域として割り当てられていません。技術資料によると、4GB以上の容量もサポートすると記述されていることから、Windows 7ベータ版では従来のシステムコンポーネントがそのまま使われているのではないかと推測します。そのため、大量のReadyBoost領域を用意した際のパフォーマンスも現時点で検証するメリットが少ないため、RC版登場まで見送ることにしました。タイミングをみて続報をお届けしますので、ご興味のある方はご覧ください。

そろそろ誌面も尽きてきましたので今回はこの辺で。次回もWindows 7の新機能をチェックしていきましょう。

阿久津良和(Cactus)