Windows 2000をマルチコアで最適化する

1.Windows2000の Core2系CPUの加熱問題

まず、Duai Core のCPUを搭載したPCでぶつかる問題が、CPUの以上過熱の問題。

Microsoftにはこんな解説もありますが、
Windows 2000 SP4 ベースのコンピュータに 更新 ロールアップ 1 をインストールした後に、 CPU 温度が異常増加します。

実際これを適用してみても、休止やスタンバイから復帰すると元に戻ってしまい、あまり効果はありません(というより危険)。

そこで、入れるのが、RightMark CPU Utilityです。

インストール後、HLTを有効にしてやります。
d055fb4f.jpg

では、2台のPCで変化を見てみましょう。


1125946e.png

1台目(VAIO VGN-SZ84PS)のアイドル状態の、左が適用前、右が適用後です。

904a9331.png

2台目(Lenovo X200)のアイドル状態の、左が適用前、右が適用後です。

20度近く温度が下がりました。これは大きいですね。

ちなみに、SpeedStep Technology アプレットは DualCoreをサポートしてないので、使えません。

あと、Profileをいじると、Clockを動的に変更してくれるので便利なのです。これがほぼSpeedStepの役割を果たしてくれます。

2.Windows2000 でのDPC問題

Coreが2つ以上あるCPUでWindows2000を使ったときに処理が片方のコアに偏ってたり、ほとんど使われてないと感じたことはありませんか?

実は、XPやVistaを除く、Windows NTや2000や2003はマルチコアにデフォルトの状態で最適化されていません。
だから、折角Deferred Procedure Call(遅延プロシージャコール)が実装されているのに、実際は処理されて居なかったりするわけです。

これはレジストリエントリの

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NDIS\Parameters にある、 ProcessorAffinityMaskの値で設定します。

0 や 0xffffffff は設定が無効であることを示し、各BitがCPU1つに相当します。
つまり、CPUが2つの場合は3、3つの場合は7、4つの場合はf(15)、6つの場合は3f(63)、8つの場合は、ff(255)のように設定します。

では、実際に見てみましょう。
58af0800.jpg

大きく、CPU1に処理が偏ってるのが分かります。
(ちなみに動作してるのはUltraVNCです)

2ede4c79.jpg

再起動後、見てみると、程よく分散されていることが分かります。

これが、Core2Duo などのCPUだと、Windows2000とXPでパフォーマンスに違いが出る原因というわけです。

いや、実は私も最近まで気がつかなかったんですよね(笑)

関連記事:
Hyper Threading Technology の足枷?
Windows 2000 Advanced ServerでCore i7の性能を引き出してみる実験

関連サイト:
複数のプロセッサが実装されている Windows Server 2003、Windows 2000 Server、または Windows NT 4.0 が実行されているコンピュータで、プロセッサの負荷が分散されません。

TrackBack:
快適なAV/PC環境を我が家に: Noah AT160が届きました
業務日誌2: FOXCONN G31MG-S(その2 Atomと比較)
OSの入れ換え - LogicalInSpace
ひろしさん: Windows2000とデュアルコア
Skygear: 旧WindowsでVistaの機能を使用する
獏工房 talk : デュアルコア
デュアルコア導入への道 ~その2~ (環境構築完了!しかし・・・) R100RS-87の雑記帳

おすすめ

18件のフィードバック

  1. 通りすがり より:

    この記事はたいへん助かりました。
    なんで2kは7より極端に遅いのかやっとわかりました。
    7を買うまで2kでデュアルCPU使っててもったいないことしてましたw

  2. 通りすがり より:

    この記事はたいへん助かりました。
    なんで2kは7より極端に遅いのかやっとわかりました。
    7を買うまで2kでデュアルCPU使っててもったいないことしてましたw

  3. 通りすがり より:

    この記事はたいへん助かりました。
    なんで2kは7より極端に遅いのかやっとわかりました。
    7を買うまで2kでデュアルCPU使っててもったいないことしてましたw

  4. 0th track より:

    VMware ESXi上のWin2kでも仮想CPUを複数にすると異常発熱する場合があるのを確認しました。
    ゲストOS上のCPU使用率に対してハイパーバイザから見た使用率が異常に高いことで同様の現象と判断しました。
    サーバなのでサスペンド等はしないということでレジストリ操作で対処しましたが、ハイパーバイザから見た使用率が大きく下がりました。

  5. 0th track より:

    VMware ESXi上のWin2kでも仮想CPUを複数にすると異常発熱する場合があるのを確認しました。
    ゲストOS上のCPU使用率に対してハイパーバイザから見た使用率が異常に高いことで同様の現象と判断しました。
    サーバなのでサスペンド等はしないということでレジストリ操作で対処しましたが、ハイパーバイザから見た使用率が大きく下がりました。

  6. 0th track より:

    VMware ESXi上のWin2kでも仮想CPUを複数にすると異常発熱する場合があるのを確認しました。
    ゲストOS上のCPU使用率に対してハイパーバイザから見た使用率が異常に高いことで同様の現象と判断しました。
    サーバなのでサスペンド等はしないということでレジストリ操作で対処しましたが、ハイパーバイザから見た使用率が大きく下がりました。

  7. yagi より:

    いつもお世話になっています。
    わが家のパソコンも温度を確認したところ、少し負荷をかけるとあっという間に70度を超えることがわかりました。
    そこでこの記事を参考に、RightMark CPU Clock Utilityを導入し「HLT」を有効にしたのですが、RMClockHLT.exeが二つ起動しそれぞれ50%ずつCPUを使っています。アイドル状態です。こんな動作を予想していなかったのですがこれで正しいのでしょうか?

  8. yagi より:

    いつもお世話になっています。
    わが家のパソコンも温度を確認したところ、少し負荷をかけるとあっという間に70度を超えることがわかりました。
    そこでこの記事を参考に、RightMark CPU Clock Utilityを導入し「HLT」を有効にしたのですが、RMClockHLT.exeが二つ起動しそれぞれ50%ずつCPUを使っています。アイドル状態です。こんな動作を予想していなかったのですがこれで正しいのでしょうか?

  9. yagi より:

    いつもお世話になっています。
    わが家のパソコンも温度を確認したところ、少し負荷をかけるとあっという間に70度を超えることがわかりました。
    そこでこの記事を参考に、RightMark CPU Clock Utilityを導入し「HLT」を有効にしたのですが、RMClockHLT.exeが二つ起動しそれぞれ50%ずつCPUを使っています。アイドル状態です。こんな動作を予想していなかったのですがこれで正しいのでしょうか?

  10. 黒翼猫 より:

    これで正しいです、このプロセスがSystemIdleProcessだと思ってください

  11. 黒翼猫 より:

    これで正しいです、このプロセスがSystemIdleProcessだと思ってください

  12. 黒翼猫 より:

    これで正しいです、このプロセスがSystemIdleProcessだと思ってください

  13. yagi より:

    日曜なのにありがとうございました。

  14. yagi より:

    日曜なのにありがとうございました。

  15. yagi より:

    日曜なのにありがとうございました。

  16. 2k より:

    こんにちは、8コアと16スレッドでe5-2650v2を最適化する方法は?

  17. 2k より:

    こんにちは、8コアと16スレッドでe5-2650v2を最適化する方法は?

  18. 2k より:

    こんにちは、8コアと16スレッドでe5-2650v2を最適化する方法は?

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です