最適なページ・ファイル・サイズを知るには:Tech TIPS
システムが仮想メモリをどのくらい使っているかを調べるにはタスク・マネージャを使う。この値を元にしてページ・ファイル・サイズを決める。ページ・ファイル・サイズは、大きくても物理メモリ・サイズの2倍程度までになるようにメモリを増設するとよい。
対象OS:Windows 2000 Professional/Windows XP Professional/Windows XP Home Edition/Windows 2000 Server/Windows 2000 Advanced Server
Windows 7など上記の「対象OS」以外については、以下のTIPSをそれぞれ参照してください。
- タスクマネージャのパフォーマンスタブの見方(Windows Vista/Server 2008編)
- タスクマネージャのパフォーマンスタブの見方(Windows 7/Server 2008 R2編)
- タスクマネージャのパフォーマンスタブの見方(Windows 8/Server 2012編)
解説
周知のとおり、Windows 2000/Windows XPには仮想メモリ・システムが搭載されており、PCに物理的に搭載したメモリ・サイズを大きく超えた仮想メモリ空間を利用して、多数のアプリケーションを同時実行することができる。この仮想メモリ・システムは、ハードディスクの一部を、あたかも物理メモリの一部であるかのようにして使用し、仮想的なメモリ空間を作り上げる技術である。Windows 2000/Windows XPは、現在メモリにロードされているプログラム・コードやデータのうち、当面使いそうもない部分をハードディスク上に用意したファイルに一時的に待避して、それらが占有していたメモリ領域を解放する。こうして一時待避したデータが再度必要になった場合には、逆にディスクからメモリにロードし直す(このとき必要なら、別のメモリ領域をディスクに一時待避する)。
仮想メモリ・システムにおける、この物理メモリ←→ディスク・ファイル間のデータ交換はスワップ(swap。「交換する」の意)と呼ばれ、特に物理メモリからディスクへのデータの書き出しはスワップ・アウト(swap out)、逆にディスクからメモリへのデータの再読み込みはスワップ・イン(swap in)と呼ばれる。PCが搭載するIntel x86プロセッサには、仮想メモリ・システムを構築するために、プロセッサ自身にページング(paging)と呼ばれる機能が備えられている。このページング機能は、物理メモリを4Kbytes単位のブロックに分け(この1つのブロックを「ページ」と呼ぶ)、ページ単位にスワップを行う。
Windows 2000/Windows XPは、スワップ用のファイル(以下ページ・ファイル)として、ハードディスクのルート・ディレクトリ上に「pagefile.sys」というファイルを作成する。ただしこのファイルには「隠しファイル」属性が付けられているので、エクスプローラの[フォルダ オプション]の[表示]タブ−[ファイルとフォルダの表示]を[すべてのファイルとフォルダを表示する]に変更しなければディレクトリ一覧には表示されない。なおWindows 2000/Windows XPでは、複数のドライブにページ・ファイルを配置し、これらを同時に利用できるようになっている(デフォルトでは、Windows 2000/Windows XPがインストールされている起動ドライブが使用される)。
操作方法
●普段、仮想メモリをどのくらい使っているかを知るには
Windows 2000/Windows XPでは、デフォルトで搭載物理メモリの1.5倍のサイズのページ・ファイルが作成される。従って例えば、システムに搭載されている物理メモリが128Mbytesなら192Mbytes、256Mbytesなら384Mbytesのページ・ファイルが作成される。単純計算では、物理メモリとページ・ファイルを加えた容量が使用可能な仮想メモリ・サイズになるので、デフォルトでは物理メモリの250%(2.5倍)までの仮想メモリが使用可能ということになる。そして、大量の仮想メモリが必要となり、実行時にページ・ファイルが足りなくなったときには、ダイナミックにページ・ファイルのサイズが拡大されるようになっている。ただしシステムで使用する仮想メモリ・サイズがおおよそ分かっているなら、ページ・ファイル・サイズを固定してしまったほうが効率がよい(TIPS「ページ・ファイルによるディスクのフラグメントを防止する方法」参照)。
システムで必要となる仮想メモリ・サイズを知りたければ、タスク・マネージャの[パフォーマンス]タブに表示される値を確認すればよい。タスク・マネージャを起動するには、[Ctrl]+[Shift]+[ESC]キーを押すか、タスク・バーの空き領域でマウスを右クリックし、表示されるショートカット・メニューの[タスク マネージャ]を実行するか、[Ctrl]+[Alt]+[Del]キーを押して表示されるダイアログの[タスク マネージャ]ボタンをクリックする。
タスク・マネージャの[パフォーマンス]タブ
これはWindows 2000のタスク・マネージャの例。タスク・マネージャの[パフォーマンス]タブでは、CPU使用率やメモリ使用量など、基本的なシステムの現在の状況を確認することができる。このうち現在の仮想メモリの状態を知るには、左下の[コミット チャージ]の値に注目する。
(1)現在実行されているすべてのプロセスによって使用されている仮想メモリ・サイズ(Kbytes単位)。上にある[メモリ使用量]の棒グラフの値と同じ。
※ Windows Vista/Windows Server 2008以降のOSのタスク・マネージャでは、[メモリ使用量]のグラフ部分には、「物理メモリの使用量」が表示されている。コミット・チャージの値は表示されている場所が異なるので注意のこと。詳細は本記事冒頭で紹介している各TIPSを参照していただきたい。
(2)ページング・ファイルを現状から拡張することなしに、プロセスに割り当てることが可能な最大仮想メモリ・サイズ(Kbytes単位)。物理メモリ・サイズと「現在の」ページ・ファイル・サイズの合計。ページ・ファイル・サイズが拡大されるにつれて増加する。
(3)システムの起動時から現在までの間に使用された仮想メモリ・サイズのピーク値([合計]の履歴。Kbytes単位)。ページ・ファイルが拡張されたときには、(2)の「制限値」を超えた値がここに表示される場合もある。
システムの仮想メモリの使用状況を知るには、[タスク マネージャ]−[パフォーマンス]タブの左下にある[コミット チャージ]グループに注目する。このグループに表示されている[合計]、[制限値]、[最大値]の値は、それぞれ現在実行されているすべてのプロセスが使用している仮想メモリの総計、ページ・ファイルを拡張することなく割り当て可能な最大仮想メモリ・サイズ(物理メモリと「現在の」ページ・ファイル・サイズの合計)、現在までの仮想メモリ・サイズ([合計]の履歴)のピーク値をKbytes単位で表したものである。例えば画面の例なら、[合計]の値は約275Mbytes、[制限値]は約619Mbytes、[最大値]の値は約276Mbytesということになる。ページ・ファイルの最大サイズは、(デフォルトでは)物理メモリの3倍までに設定されているので、この例では[制限値]の値は最大1Gbytesまで拡大される可能性がある。
今述べたとおり、[最大値]の値は、Windows 2000/Windows XPシステムを起動してから、これまでの間に使用された仮想メモリ・サイズのピーク値である。つまり、システム起動からこれまでに、日常的な操作をひととおり行った後だとすれば、この[最大値]の値が、システムで必要な仮想メモリ容量ということになる。厳密には、できるだけ長期にわたって使用仮想メモリ容量のログなどをとって判断すべきだが(タスク マネージャではこのようなログはとれないが、コントロール パネルの[管理ツール]フォルダ−[コンピュータの管理]アプレットの[パフォーマンス ログと警告]を利用すればこれが可能である)、簡易には、システムを起動してから、日常的な操作をひととおり行ってみて(同時に利用する可能性があるアプリケーションなどは同時に実行する)、その後この[最大値]の値を調べてみるとよい。TIPS「必要メモリ・サイズを見極める」も参考にしていただきたい。
必要な仮想メモリ容量が分かったら、システムの搭載物理メモリとその値を比較してみよう。物理メモリ量をはるかに超える仮想メモリを使っているなら、オーバーヘッドの大きなスワップが頻繁に発生している可能性がある。そのような場合には、物理メモリの増設などを検討する必要があるだろう。Windows 2000/Windows XPのデフォルト設定では、ページ・ファイル・サイズの最大値は物理メモリ・サイズの1.5倍〜3倍まで可変となっているが、現実的には数百Mbytesものスワップが発生するような環境では、著しくパフォーマンスが低下することになるだろう。搭載可能な最大メモリ容量が数十M〜100Mbytes程度しかなかった古い時代のマシンならともかく、現在では、ページ・ファイル・サイズは物理メモリと同じくらいか、最大でも2倍くらいまでに収まるように物理メモリを増設することが望ましい。
■更新履歴
【2001/12/18】Windows XPに関する情報を加筆・修正しました。
【2000/08/01】初版公開。
■この記事と関連性の高い別の記事
- 複数のディスクにページ・ファイルを分散させて、ページ・ファイル・アクセスを高速化する(TIPS)
- 必要メモリ・サイズを見極める(TIPS)
- ページ・ファイルによるディスクのフラグメントを防止する方法(TIPS)
- タスクマネージャーのパフォーマンスタブの見方(Windows 7/Server 2008 R2編)(TIPS)
- リソース・モニタでメモリの利用状況をモニタする(TIPS)
- タスクマネージャーのパフォーマンスタブの見方(Windows Vista/Windows Server 2008編)(TIPS)
- Windows OSでサポートされている最大物理メモリサイズは?(TIPS)
Copyright© Digital Advantage Corp. All Rights Reserved.