仮想メモリとは何か、またはそれを設定するにはどうすればいいのかご存知でしょうか?答えを得るには、このまま読み続けてください。

仮想メモリとは、ハードウェアとソフトウェアによって実装されるメモリ管理技術です。これにより、アプリケーションは、連続した利用可能な記憶空間またはアドレス空間があると見なします。しかし実際には、仮想メモリは通常、いくつかの物理メモリのフラグメントに分割され、その一部が必要に応じてデータを交換するために使用できるように、外部ディスク ストレージに保存されます。現在、ほとんどのOSは、Windowsファミリーの「仮想メモリ」とLinuxの「スワップ領域」のように、仮想メモリを使用しています。

Windows 8/8.1のOSを起動したときに、Windowsロゴのページで固まってしまい、システムに入ることができない場合は、強制的にシャットダウンしてから再起動する必要があります。その後、仮想メモリを調整することでこの問題を解決することができます。

おすすめ:OSがWindowsロゴで固まってしまう問題について、さらに詳しい情報を知りたい場合は、「Windows 10ローディング画面で固まった時の対処法」に興味があるかもしれないと思います。

はじめに

PCは、すべてのプログラムを実行するために、メモリ(CPUが必要とするデータや命令を保持する一時的な記憶領域のこと)を必要とします。そのため、メモリに格納されるプログラムが多ければ多いほど、メモリの空き容量は少なくなります。そこで、Windows OSでは、パソコンのメモリ容量を増やすために、仮想メモリの技術を採用することが多くなっています。

仮想メモリの機能

–from https://ja.wikipedia.org/

この技術は、ハードディスクの一部の領域をメモリとして残しておきます。システムのメモリが不足している場合、仮想メモリがその役割を十分に果たします。仮想メモリは、パソコンのRAMとハードディスクの一時的な領域を組み合わせたものです。RAMが不足すると、仮想メモリはRAMからページング ファイルと呼ばれるスペースにデータを移動させるのに役立ちます。ページング ファイルにデータを移動することで、RAMを解放し、コンピューターが作業を完了できるようにします。

一般的に、PCのRAMが多いほど、プログラムの実行速度が速くなります。RAMの空き容量が少ないため、PCの動作がかなり遅くなっている場合は、仮想メモリを増やして問題を解決することができます。しかし、PCは、ハードディスクよりもRAMからの方がはるかに速くデータを読み取ることができますので、RAMの容量を増やす方が良い解決策となります。

仮想メモリとは、実際にはPageFile.Sysという大きなファイルであるので、時には「ページファイル」とも呼ばれます。ほとんどの場合は見えませんが、このファイルを見るには、エクスプローラーを開いて、システムのファイル保護機能を閉じる必要があります。

おすすめ:ページ ファイルを削除してはいけません。さらに詳しい情報については、「ドライブC、EFIシステムボリューム、回復/OEMボリュームなどを削除する方法」をご覧ください。

一言で言えば、メモリは、PCがプログラムを実行するために必要なので、コンピューターの実行において大きな役割を果たします。Windowsでは仮想メモリを使ってPCのメモリを改善することができます。また、仮想メモリは、PAGEFILE.SYSファイルの中に存在します。

仮想メモリの設定

仮想メモリのサイズを確認するにはどうすればいいですか?

初心者の場合

Linuxは複雑なコマンドが必要なため、ここではWindows 10を例に仮想メモリの設定方法をご説明します。

Windowsでの仮想メモリの設定

1:「エクスプローラー」を開き、「PC」を右クリックして「プロパティ」を選択します。

2:ポップアップ ウィンドウで「システムの詳細設定」を選択します。

3:「システムのプロパティ」ウィンドウで、「詳細設定」タブに進み、「パフォーマンス」セクションの「設定」をクリックします。

4:「パフォーマンス オプション」ウィンドウで、「詳細設定」タブに移動し、「仮想メモリ」セクションにある「変更」をクリックします。

5:「仮想メモリ」ウィンドウで、「すべてのドライブのページング ファイルのサイズを自動的に管理する」のチェックを外します。次に、Pagefile.sysファイルを保存する比較的空いているスペースを選択します。

6:それから、「カスタム サイズ」にチェックを入れ、「初期サイズ(MB)」または「最大サイズ(MB)」に新しいサイズをメガバイト単位で入力してください。ここでは、システムのRAM容量の1.5~3倍に相当するサイズを推奨します。

7:最後に、「設定」をクリックしてから、「OK」をクリックします。

ベテランの場合

実は、1.5倍から3倍の倍数関係で厳密に仮想メモリのサイズを設定することは科学的ではありません。実際のニーズに合わせて設定することがお勧めです。仮想メモリサイズを設定する際には、Windows内蔵のパフォーマンスモニターを利用することができます(Windows 10を例にとります)。

仮想メモリサイズの設定

1:「Windows + R」キーを押して「ファイル名を指定して実行」ボックスを呼び出し、「perfmon.msc」と入力して「Enter」キーを押します。

2:「パフォーマンス モニター」ウィンドウで、「データ コレクター セット」を展開します。次に、「ユーザー定義」を右クリックして、「新規作成」>「データ コレクター セット」を選択します。

3:新しいウィンドウで、名前(例として「paging file」)を入力し、「手動で作成する」をチェックしてから、「次へ」をクリックします。

4:「データ ログを作成する」セクションの「パフォーマンス カウンター」にチェックを入れて、「次へ」をクリックします。

5:「追加」ボタンをクリックしてカウンターを追加します。左上のボックスで、「Paging File」を見つけて展開します。その下の項目と、左下のボックスでの「Total」をハイライトしてから、「追加>>」ボタンをクリックすると、2つのカウンターが1つずつ右側のボックスに追加されます。その後、「OK」ボタンをクリックします。

6:必要に応じて「サンプルの間隔」を適切な数値に変更してください。そして、「次へ」ボタンをクリックします。

7:データの保存先を選択した後、「次へ」をクリックします。

8:「保存して閉じる」オプションがチェックされていることを確認してから、「完了」をクリックします。

9:「データ コレクター セット」>「ユーザー定義」を展開すると、先ほど作成した新しいデータ コレクター セットが表示されます。それを右クリックして「開始」を選択します。

10:日常のコンピューター操作を行い、頻繁に使用するさまざまなアプリケーションやゲームを実行してください。数時間使用すると、新しいデータ コレクター セットは使用状況の基本的かつ完全な評価を行うことができます。

仮想メモリ使用量のパフォーマン スレポートの表示

11:このとき、paging fileデータ コレクター セットを右クリックして「停止」を選択します。次に、「レポート」>「ユーザー定義」>「paging file」に移動します。「paging file」の下に、仮想メモリの使用状況に関するレポートがあります。このレポートをクリックすると表示されます。

12:レポートの値はページング ファイルの使用量の割合を指しているということに注意を払う必要があります。つまり、レポートによると、システムが2GBのページング ファイルを残しているにもかかわらず、ページング ファイルは25%しか使用しないことがわかります。したがって、空き領域を確保するには、ページング ファイルの最大サイズを512MBに設定できます。

提示: Windowsの内蔵ツール「システム情報」は、PCの物理メモリと仮想メモリの容量を表示できます。必要がある場合は、Windowsの検索ボックスから開いてください。

関連情報

仮想メモリの場所

また、複数のディスクをお持ちの場合は、OSやアプリケーションが入っていないドライブにページング ファイルを配置した方が良いでしょう。アプリケーションとページング ファイルを別々のディスクに置くことで、ディスクの使用量を最小限に抑えられるだけでなく、ディスクの効率を高めることもできます。ただし、ディスクが1つしかない場合に、ページング ファイルを同じディスク内の別のボリュームに置いても、ディスクの効率は良くなりません。

仮想メモリ(ページング ファイル)とディスクの断片化

仮想メモリは、コンピュータのRAMとハードディスクの一時的な領域を組み合わせたものです。ハードディスクは、ファイルが不連続に書き込まれているため、ディスクの断片化が発生する可能性があります。そのため、ページング ファイルまたは仮想メモリ パーティションが不完全な状態になっていると、ディスクの検索時間は長くなり、ディスク パフォーマンスが低下する場合があります。

Windowsがpagefile.sysファイルを頻繁に読み取ると、ディスクの断片化が起こると考える人がいます。実際はそうではありません。pagefile.sysが作成されると、パーティション内での配布形態が固定されます。ファイルの読み取りと書き込みが、pagefile.sysのサイズには影響しません。ただし、pagefile.sysを使い切った後、システムによってtemppf.sysが作成されるため、ディスクの断片化が発生します。Linuxオペレーティング システムでは、個別のパーティションを分割してメモリとして使用することで、ディスクの断片化の影響を基本的に排除することができます。

「仮想メモリ最小値が低すぎます」を修正するさまざまな方法

一般的にWindows XPは、Cドライブの空き容量をデフォルトで仮想メモリとして使用しますので、Cドライブの空き容量が大きいほど、システムの動作が速くなります。仮想メモリは、Cドライブの使用状況に応じて動的に変化します。そのため、Cドライブではディスクの断片化が発生しやすく、システムの動作速度に影響を与えます。したがって、D:のような別のボリュームを仮想メモリとして設定することがお勧めです。

仮想メモリの場所を確認する手順

ここでは、Windows XPを例にご説明します。「マイ コンピュータ」のアイコンを右クリックして、下から「プロパティ」を選択します。「システム」ボックスから「システムの詳細設定」をクリックします。次に、「詳細」タブに移動し、「パフォーマンス」の「設定」をクリックします。それから、「パフォーマンス オプション」ボックスで、「詳細」タブに進み、「仮想メモリ」セクションの「変更」ボタンをクリックします。すると、「仮想メモリ」のダイアログ ボックスが表示されます。

実際のところ、ディスクの断片化を避けるために、仮想メモリに固定値を設定することをお勧めします。そして、具体的な値は、物理メモリのサイズに依存します。通常、物理メモリの1.5倍から3倍です。例えば、512MBのメモリをお持ちの場合、256〜768MBの仮想メモリを設定することができます(RAMと仮想メモリの合計サイズは一般的に256MB以上です)。メモリサイズが2GB以上であれば、仮想メモリは必要ありません。

ただし、いくつかの特別な状況では、仮想メモリが必要になる場合もあります。例えば、大容量の3Dゲームをプレイしたり、大きな画像を作成したりする際にシステムのメモリが不足する場合、仮想メモリの設定を検討することができます。設定方法は以下のとおりです。

例えば、256Mのメモリを持ち、Dドライブを仮想メモリに設定したいとします。そのとき、まずデフォルトの仮想メモリ(Cドライブ)を削除して、Cドライブを選択したままにしておきます。次に、「ページング ファイルなし(N)」を選択して「設定」ボタンをクリックすると、Cドライブの仮想メモリが削除されます。その後、Dドライブを選択して、「カスタム サイズ」をクリックしてから、「初期サイズ」と「最大サイズ」の欄に「512」と入力し、「設定」ボタンをクリックします。最後に「OK」ボタンをクリックします。すると、この変更を有効にするために、システムが再起動されます。

設定方法

手動設定

ここでは、Windows XPを例にとり、仮想メモリの設定方法をご説明します。

1:「マイ コンピュータ」アイコンを右クリックして、リストから「プロパティ」を選択します。

2:「システム」ボックスから「システムの詳細設定」をクリックし、「詳細」タブを表示して、「パフォーマンス」セクションにある「設定」をクリックします。

3:「パフォーマンス オプション」ボックスで、「詳細設定」タブを選択し、「仮想メモリ」セクションの「変更」ボタンをクリックします。

4:適当なドライブを選び、「カスタム サイズ」にチェックを入れ、「初期サイズ」と「最大サイズ」のボックスに適切な値を入力します。次に、「設定」と「OK」を順にクリックします。その後、コンピューターを再起動すると、すべての作業が完了します。

ページネーションの位置を調整する

Win386.swpファイル(スワップ ファイル)は、ルートディレクトリCに保存されていますが、実はWin386.swpファイルはどのパーティションにも保存可能です。システムボリュームCに十分な空き容量がない場合は、他のパーティションに保存してもOKです。では、この作業を完了するにはどうすればよいのでしょうか。まず、メモ帳を使ってSystem.iniファイル(C: Windows内)を開きます。そして、[386Enh]セクションで、Win386.swpファイルの場所を変更します。例えば、「Paging Drive= C: WindowsWin386.swp」を「Paging Drive= D: WindowsWin386.swp」に変更できます。

Windows 2000/XPの場合は、「コントロール パネル>システム>詳細設定>パフォーマンス」と進み、「設定>詳細設定>変更」をクリックすると、仮想メモリのダイアログ ボックスが表示されます。ここで、Win386.swpファイルを別のパーティションに格納したい場合は、元のパーティションのページング ファイルを削除してから、必要なパーティションを選択する必要があります。(デフォルトでは、ページング ファイルがシステム パーティションに格納されています。)

Windows XPでは、最低でも256MBの物理メモリが必要です。大容量の3Dゲームをプレイしたいが、Windows XPシステムのメモリが不足している場合は、システムが自動的に仮想メモリ サイズを調整するので、慌てる必要はありません。

注: 仮想メモリは最低2MBまで設定できますが、その最大サイズは現在のハードディスクの残り容量、または32ビットOSのアドレス範囲(4GB)を超えてはいけません。

ページング エグゼクティブの無効化

RAMの容量が1GB以上の場合、ページング ファイルを使用する必要はありません。また、これを無効にすることもできます。次にその手順を示します。「Windows + R」を同時に押して、「ファイル名を指定して実行」を呼び出します。ボックスに「Regedit」と入力します。「レジストリ エディター」のウィンドウが表示されたら、「HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management」に移動してください。ここで、「Disable Paging Executive」を選択し、その値のデータに「1」を入力します。

レジストリエディターによるページング エグゼクティブの無効化

注: この方法では、システムが不安定になることがあります。また、一部のプログラムは実行できません。そのため、実際の状況に応じて変更を行ってください。

RAMが4GBより大きい場合、仮想メモリの影響はほとんどありません。普段の使用でメモリ不足の警告が出ないのであれば、安心して使用できます。

ページファイルの消去

同じ場所に、「ClearPageFileAtShutdown」という項目があります。ここでいう「Clear」とは、pagefile.sysファイルを完全に削除するのではなく、きれいにして整理することを指しています。Microsoftでは、これは安全なオプションであり、パフォーマンスには影響しないとしています。

補充トピック:Windows 2000/XP/2003のユーザーは、SweepRAM(メモリ最適化プログラム)を使用して、未使用のRAMを解放することができます。このプログラムは、すべてのプロセス ワーキングセットをクリアするように設計されます。そして、ワーキングセットは、あるプロセスが一定の時間間隔で必要とするメモリの量を定義するコンピュータ サイエンスの概念です。プロセスの実行中、Windowsは自動的にワーキングセットを調整します。

具体的には、頻繁にアクセスするページはメモリに残され、それ以外のページはワーキングセットから削除され、空き容量がないため、メモリの「Conversion list」に一時的に格納されます。アプリケーションが再びページにアクセスすると、OSは自動的にこれらの削除されたページをワーキングセットに追加します。

SweepRAMは小さなフリーウェアで、使用されていないRAMを素早く解放し、システムのパフォーマンスを向上させることができます。

シャットダウンで仮想メモリのページ ファイルをクリアする

1:「Windows + R」を同時に押して「ファイル名を指定して実行」を呼び出し、「gpedit.msc」と入力します。

2:「ローカル グループ ポリシー エディター」で、「コンピューターの構成」>「Windowsの設定」>「セキュリティの設定」>「ローカル ポリシー」>「セキュリティ オプション」と進みます。次に、「シャットダウン:仮想メモリのページファイルをクリアする」を選択します。

3:「プロパティ」を右クリックし、「有効」と「OK」を順にクリックします。

仮想メモリのページ ファイルの消去

「ローカル グループ ポリシー エディター」がない場合は、以下の方法を試してみてください。

1:また、「ファイル名を指定して実行」を開きます。次に、「regedit」と入力して「レジストリ エディター」を開きます。

2:「HKEY_LOCAL_MACHINESYSTEMCurrentControlSetSession ManagerMemory Management」と進みます。そして、「ClearPageFileAtShutdown」をダブルクリックしてください。

3:「DWORD値の編集」ダイアログ ボックスで、値のデータに「1」と入力してから、「OK」ボタンをクリックします。

4:コンピューターを再起動すると、この変更が有効になります。

  • hatena