SSブログ

WinXPメモリ管理のチューニング [チューニングとカスタマイズ]

これは、エディタで書いたものをそのままUPしています。ご了承下さい。

【始めに】
※メモリ管理のチューニング」を行ってもその効果は「ベンチマークでは確認できません」。(当然ですよね)
何故ならば、CrystalDiskInfo等のソフトは物理的なデバイスその物の性能を計測するためOSの用意したキャッシュを使用せずに直接デバイスにアクセスしています。
体感速度や実際に動作させてストップウォッチ等で比較するしかないです。

広義のOSとは、「ハードウェア資源・ソフトウェア資源・人的資源」の3つの限られた資源を最も効率よく使用できるように制御・管理しているもの」ですが、
資源を最も効率よく使用できるように制御させるためには、用途(使い方)に合わせたOSの環境設定を行う必要があります。これはメインフレームもPCも同じです。
環境設定はパラメータ値変更することによって行います。

Windowsは、MS-Officeのようなソフトを当時のコンピュータの標準的なハードウェア資源(CPU・メモリ・外部記憶装置)に合わせ効率良く動くように環境パラメータ値が設定されています。
XPは、「メモリ搭載容量 最低128MB のPC」を前提に開発され、また環境設定のパラメータ値も決定されています。
(当時はメモリ搭載容量 512MB 以上のパソコン対象でしたら、メモリの最適化が多少行え高速化を図ることが出来ました。)

たとえば、XPの開発当時に一般的なPCの搭載メモリが4GB超だったら、OSの「カーネルを一部仮想メモリに逃がす」なんて設定項目はなかったかもしれませんし、
XPの「キャッシュサイズ」のデフォルトは「512KB」です。ドライバなどが I/O 処理に使うバッファの全合計ですので、現在では少なすぎます。
最近のHPは特に容量があります。因みに、so-netのHPトップのサイズは495KBです。価格.comで629MB、私のブログで642KBですので、ほぼ確実にブラウザのページを開くたびにHDDに書き込みに行き、HDDに足を引っ張られてしまいます。
MS-WORDやEXCEL等のファイルでも今では数MBのものがざらです。


PCの用途(使い方)に合わせた設定をする前に、PCのスペックを念頭において自分がそのPCをどのように使うか?を仮定します。

私のNetBookはメモリ2GBでグラフィック系は貧弱なので、ブラウザーとメール、デジタル一眼のポータブルストレージとして快適な状態で使い続けることです。

NetBookで皆さんが「どのようなアプリを動かすか」は個人により違います。
私は、IE7とメール(Becky! Ver.2),エディタ(秀丸エディター)がメインで「一時的に各種調査ツール」を使います。
MS-Officeはインストールしません。
LAN接続HDDに保存してある音楽・写真・ビデオを視聴します。
HDDの空きパーテーション「84GB」は、デジタル一眼のポータブルストレージやお気に入りの音楽データ保存に使います。
CrystalDiskInfoやNetwork Stumbler,NTREGOPT,EditMtu,PerfectDisk,CCleaner(滅多な事では使わない)のユーティリティーだけはインストールしてあります。(NTREGOPTは安全で便利です)
常駐ソフトも必要最低限です。


使用者個人毎に様々な使い方をされるし、
また、搭載しているメモリ容量、HDDの実質データ転送速度、HDDでなくSSDなのか等、ハード環境も様々です。、(SSDそのもに原因がある場合は別ですが、プチフリもバッファーを大きく取ることで改善する可能性もあります。)

【仮想メモリを使用しない】(ページングファイルなし)での運用は考えていません。

・【仮想メモリを使用しない】のメリット
 唯一のメリットは「最小化した状態で、しばらく使っていないアプリにアクセスする際にかかる時間を短縮する」ということだけです。
・【仮想メモリを使用しない】のデメリット
 クラッシュする可能性があがり、そのクラッシュを回避するためにRAMの使用を意識的に抑えなくてはならなくなり、一部のアプリではありとあらゆるシステム問題が発生する。

ページファイル設定をいじる理由はごく一部のユーザを除き、まったくありません。
ドライブの読み込みなどに時間がかかる場合は、ページファイルを無効化するのではなくファイルシステムキャッシュにWindowsが使用するメモリ量を増やしてやれば良いだけです。(変更していない限り「512KB」しか割当てられていません)

×「ページファイル用に別のパーティションを作成すると良い」、との書き込みを見かけることがありますが、Windowsシステムと同じハードドライブ上にある場合、ページファイル用に別パーティションを作成しても意味はありません。
◎HDDを2台以上搭載可能なPCの場合は、物理的に別のドライブへページファイルを移動させるのは効果的です。


今回は「メモリ関係の最適化」について作業を行っていきますので、OSのメモリ管理のパラメータを設定しチューニングしていきたいと思います。
Windowsのメモリ管理のパラメータはレジストリの
[HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Control¥Session Manager¥Memory Management]に保存されています。

前述したように、使用者毎に「最適なメモリ管理のパラメータ値」は異なりますが、設定する項目は同じですので、紹介するツール等を使って各自最適値を割り出して下さい。
尚、残念ですが、メモリを1GBしか搭載していない場合は効果的なチューニングは物理的に難しいかもしれません。ご容赦下さい。(可能な限りキャッシュサイズを大きくすること位です。)

1.取りあえず、仮想メモリは初期値(システム管理サイズ)のままでも、変更してあってもかまいません。
2.まず、512MB 以上のメモリを搭載しているならば、「OSのカーネル」が仮想メモリにスワップアウトしないようにします。
  これによりOSのスワップアウト・スワップインがなくなり、ほんの僅かですが時間短縮になります。
3.「自分なりの通常の使い方」で暫く使って、最低限必要な物理メモリ量を測定します。
  ・PCにログインしたらすぐに「タスクマネージャー」を立ち上げ「最小化」しておきます。(その時のコミットチャージは302MBです)
  ・タブブラウザーでしたら複数タブを使う・何時も見ているページを開く等、全く普段の使い方をします。
  ・ブラウザーを最小化しておいて、他のアプリを使う、複数のアプリを常に立ち上げているならばいつものように!
  ・PCを使い終わる時に、最小化しておいた「タスクマネージャー」を立ち上げ、「パフォーマンス」タブをクリックして開き、
   ウインドの左下にある「コミットチャージ」の項目を確認します。(メモしておくと良い)
   コミットチャージ「最大値」はOSを起動してから現在までにおける、コミットチャージのピーク時の値をあらわしています。
   つまり、「最大値」KBは最低でも物理メモリに必要ということです。(少し余裕を持って必要量を確保しておきましょう。)
   私の場合は「ブログの更新作業(タブは6つ開いて)」&「メール」「Akabei Monitor(システムモニターツール)」で764MBがピークです。
  ・搭載メモリ量から(余裕を持った必要量)を引いた残りの物理メモリを無駄にならないように有効活用します。
   残りの物理メモリをHDD等のファイルキャッシュとRamDiskに割り当てて使えます。
   私は、まずRamDiskを作成しそこに仮想メモリを割り当てることにしました。(160MBのRamDiskを作成し154MBの仮想メモリ作成)
   「仮想メモリ不足のメッセージ」が出たら拡張します。
   ファイルキャッシュに16進で「8000000H」,10進で「134217728」KB割り当てています。(約134MB)
   合計約300MBを割り当てました。アプリ領域は約1700MBとなります。(取りあえずそこから始めました。)
   

コミットチャージとは、動作中のプログラムが必要としている(物理メモリ、仮想メモリを含めた)メモリ量の合計です。
 タスクマネージャによってコミットチャージを確認することができます。
 「合計」 は項目は現在のコミットチャージを、
 「制限値」は物理メモリと仮想メモリを合わせたコミットチャージの上限を
 「最大値」はOSを起動してから現在までにおける、コミットチャージのピーク時の値をあらわしています。

さてパラメータを設定します。(Windowsはレジストリに保存されていますのでレジストリをいじります)
1.作業前に「必ずバックアップを取って下さい。
  [スタート]→[ファイル名を指定して実行]を選び「regedit」と入力し[OK]をクリックします。
  左側のボックスをスクロールし一番上の「マイコンピュータ」をクリックし「ファイル」→「エクスポート」をクリックし、
  保存先を選択して、ファイル名(何でも良いですが、2010-01-05_1のように日付とシーケンス番号が良いでしょう)

2.カーネルメモリを常に物理メモリに配置しスワップを起こさせない設定。
  レジストリエディタの左ペインで、「HKEY_LOCAL_MACHINE」→「SYSTEM」→「CurrentControlSet」→「Control」→「Session Manager」→「Memory Management」 の順にクリックしていく。
  (以降より「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management」と表記します。
   右ペインで「DisablePagingExecutive」を開き、「値のデータ」を「0」から「1」に書き換え、OKをクリック。

3. 物理メモリからページファイルへ移動しない、確実に確保するメモリの容量(非ページプール)を126MB確保(「タスクマネージャー」カーネルメモリの合計値より算出現在83MB使用)
  「HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Memory Management」
   DWORD値[NonPagedPoolSize]を開き、16進「7850000」に書き換え、OKをクリック。

4.CPU2次キャッシュのサイズを最適化する 但し、( CPU の2次キャッシュサイズが 512KB 以上のパソコン対象 )
  2次キャッシュサイズが不明な場合は、ツール「CPU-Z」で確認。
  CPU-Z.JPG
  「Intel Atom N270」は2次キャッシュサイズが 512KBですので適用できます。
  Windows XP の初期設定での有効値は 256KBになっていますので、512KBにしてやります。
   [HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Control¥Session Manager¥Memory Management]
   右ペインの [SecondLevelDataCache] をダブルクリック。
   [DWORD値の編集] ウィンドウの [表記] 項目で[10進] を選択する。[512]を入力し、OKをクリック。

5.デバイスとCPU などの間でやりとりされるデータを記憶するメモリサイズを調整(いわゆるキャッシュバッファー)
   [HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Control¥Session Manager¥Memory Management]
   右ペインの [IoPageLockLimit] をダブルクリック。[DWORD値の編集] ウィンドウの [表記] 項目で [10進] を選択して
   「134217728」を入力し、OKをクリック。

取りあえず、以上です。
不適切な設定値がありましたら、コメント下さい。
ツールの入手先とインストール方法は、後日追記し、テキストカラーを使って見やすくする予定です。
物臭な性格なもので・・・すみません。

次回は「タスク管理」のチューニングと、無用なサービスの停止とアクティブデスクトップの無効化です。
アクティブデスクトップの無効化で不可能になるのは「JPEG形式の壁紙」が使えなくなる位です。
「ペイント」で「BMP形式に」保存し直せばOKです。
XPをクラシック表示にしても「徹底的に無効化」等をやらないと大した効果がないので、クラシック表示については、
やりません。速度的に余り影響しません。なので重くないXPテーマ等を入れて楽しく使ったほうが幸せになれそうな気がします。

nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:[必須]
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

お得なポイント貯まる!ECナビ


この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。