メモリ内の RAM、仮想メモリ、ページファイル、およびメモリWindows

適用対象:  Windows 7 Service Pack 1, Windows Server 2012 R2
元の KB 番号:   2160852

概要

この記事では、32 ビット バージョンの仮想メモリの実装に関する基本情報をWindows。

最新のオペレーティング システム (Windowsアプリケーションや多くのシステム プロセスでは、常に仮想メモリ アドレスを使用してメモリを参照します。 仮想メモリ アドレスは、ハードウェアによって実際の (RAM) アドレスに自動的に変換されます。 オペレーティング システム カーネルのコア部分だけがこのアドレス変換をバイパスし、実際のメモリ アドレスを直接使用します。

実行中のすべてのプロセスで必要なメモリがシステムにインストールされている RAM のボリュームを超えない場合でも、仮想メモリは常に使用されます。

プロセスとアドレススペース

Windows の 32 ビット バージョンで実行されているすべてのプロセス (アプリケーション実行可能ファイルなど) には、コンピューターにインストールされている RAMの量に関係なく、0 ~ 4,294,967,295 (2*32-1 = 4 GB) の仮想メモリ アドレス (仮想アドレス空間) が割り当てられます。

既定の Windows 構成では、この仮想アドレス空間の 2 ギガバイト (GB) が各プロセスのプライベート使用用に指定され、他の 2 GB はすべてのプロセスとオペレーティング システム間で共有されます。 通常、アプリケーション (メモ帳、Word、Excel、および Acrobat Reader など) は、プライベート アドレス空間の 2 GB のほんの一部しか使用します。 オペレーティング システムは、使用されている仮想メモリ ページにのみ RAM ページ フレームを割り当てる。

物理アドレス拡張機能 (PAE) は、物理メモリ (RAM) アドレスを 36 ビットに拡張する Intel 32 ビット アーキテクチャの機能です。 PAE は仮想アドレス空間のサイズ (4 GB のまま) は変更されませんが、プロセッサがアドレス指定できる実際の RAM のボリュームだけになります。

プロセスで実行されているコードで使用される 32 ビット仮想メモリ アドレスと 36 ビット RAM アドレスの間の変換は、オペレーティング システムによって管理されている変換テーブルに従って、コンピューター ハードウェアによって自動的かつ透過的に処理されます。 仮想メモリ ページ (32 ビット アドレス) は、任意の物理 RAM ページ (36 ビット アドレス) に関連付けできます。

次の一覧では、さまざまなバージョンとエディションがサポートWindows RAM の量 (2010 年 5 月) について説明します。

Windows バージョン RAM
Windows NT 4.0 4 GB
Windows 2000 Professional 4 GB
Windows 2000 Standard Server 4 GB
Windows 2000 Advanced Server 8 GB
Windows 2000 データセンター サーバー 32 GB
Windows XP Professional 4 GB
WindowsServer 2003 Web Edition 2 GB
WindowsServer 2003 Standard Edition 4 GB
WindowsServer 2003 Enterprise Edition 32 GB
WindowsServer 2003 データセンター エディション 64 GB
Windows Vista 4 GB
Windows Server 2008 Standard 4 GB
Windows Server 2008 Enterprise 64 GB
Windows Server 2008 Datacenter 64 GB
Windows 7 4 GB

ページファイル

RAM は限られたリソースですが、ほとんどの実用的な目的では、仮想メモリは無制限です。 多くのプロセスが可能で、各プロセスには独自の 2 GB のプライベート仮想アドレス空間があります。 既存のすべてのプロセスで使用されているメモリが使用可能な RAM を超えると、オペレーティング システムは 1 つ以上の仮想アドレススペースのページ (4 KB 単位) をコンピューターのハード ディスクに移動します。 これにより、その RAM フレームが他の用途に対して解放されます。 これらのWindowsページアウトされたページは、パーティションのルートにある 1 つ以上のファイル (Pagefile.sys ファイル) に格納されます。 各ディスク パーティションには、このようなファイルを 1 つ指定できます。 ページ ファイルの場所とサイズは、[システムのプロパティ] で構成されます ([ 詳細設定] をクリックし、[パフォーマンス] をクリックし、[ページの設定] ボタン 設定 します)。

ユーザーは頻繁に、 ページファイルのサイズを尋ねる必要がありますか? この質問に対する答えは、インストールされている RAM の量と、ワークロードに必要な仮想メモリの量に依存します。 その他の情報がない場合は、インストールされている RAM の 1.5 倍の一般的な推奨事項が良い開始点です。 サーバー システムでは、通常、不足が生じ、ページファイルが使用されなくなじむので、十分な RAM を使用する必要があります。 これらのシステムでは、大きなページファイルを維持するために有用な目的を果たしません。 一方、ディスク領域が豊富な場合は、大きなページ ファイル (インストールされている RAM の 1.5 倍など) を維持しても問題は発生せず、これにより、大きなサイズを心配する必要もなされません。

パフォーマンス、アーキテクチャの制限、および RAM

どのコンピューター システムでも、負荷が増加する (ユーザー数、作業量)、パフォーマンスは低下しますが、非線形の方法で実行されます。 負荷または需要が一定のポイントを超えて増加すると、パフォーマンスが大幅に低下します。 つまり、一部のリソースが不足し、ボトルネックになっています。

ある時点で、不足しているリソースを増やすることはできません。 つまり、アーキテクチャの 制限に 達しました。 一部の頻繁に報告されるアーキテクチャの制限はWindows含まれます。

  • システム (カーネル) 用の 2 GB の共有仮想アドレス空間
  • プロセスごとに 2 GB のプライベート仮想アドレス空間 (ユーザー モード)
  • 660 MB のシステム PTE ストレージ (Windows Server 2003 以前)
  • 470 MB のページ プール ストレージ (Windows Server 2003 以前)
  • 256 MB の非ページ プール ストレージ (Windows Server 2003 以前)

これは、Windows Server 2003 に適用されますが、これは Windows XP および 2000 Windowsにも適用されます。 ただし、Windows Vista、Windows Server 2008、および Windows 7 では、これらのアーキテクチャ上の制限が共有されるわけではありません。 ユーザー メモリとカーネル メモリの制限 (ここでは番号 1 と 2) は同じですが、PTEs やさまざまなメモリ プールなどのカーネル リソースは動的です。 この新しい機能により、ページメモリと非ページ メモリの両方が有効になります。 これにより、PTEs とセッション プールは、カーネル全体が使い果たされるまで、前に説明した制限を超えて拡大できます。

次のような頻繁に見つかったステートメントと引用符で囲まれたステートメント。

ターミナル サーバーでは、4 GB の RAM を使用する前に、2 GB の共有アドレス空間が完全に使用されます。

これは場合によっては当てはまる場合があります。 ただし、システムが特定のシステムに適用されるかどうかを確認するには、システムを監視する必要があります。 場合によっては、これらのステートメントは特定の Windows NT 4.0 または Windows 2000 環境からの結論であり、必ずしも Windows Server 2003 には適用されません。 これらのアーキテクチャの制限が実際Windowsに達する確率を減らすために、Server 2003 のサーバー 2003 に大幅な変更が加えられた。 たとえば、カーネル内にある一部のプロセスは、共有仮想アドレス空間で使用されるメモリを削減するためにカーネル以外のプロセスに移動されました。

RAM と仮想メモリ使用量の監視

パフォーマンス モニターは、システムのパフォーマンスを監視し、ボトルネックの場所を特定するための原則的なツールです。 パフォーマンス モニターを起動するには、[スタート]ボタン 、[ コントロール パネル] の順にクリックし、[管理ツール] をクリックし、[パフォーマンス モニター]をダブルクリックします。 重要なカウンターの概要と、重要なカウンターの概要を次に示します。

  • メモリ、コミットされたバイト: このカウンターは、仮想メモリの需要の尺度です。

    これは、プロセスによって割り当てられたバイト数と、オペレーティング システムが RAM ページ フレームまたはページ ファイル内のページ スロット (またはおそらく両方) をコミットしたバイト数を示します。 コミット されたバイト数が 使用可能な RAM より大きくなると、ページングが増加し、使用されているページ ファイルのサイズも大きくなります。 ある時点で、ページング アクティビティはパフォーマンスに大きな影響を与え始める。

  • プロセス、ワーキング セット、_Total: このカウンターは、アクティブに使用されている仮想メモリの メジャー です。

    このカウンターは、すべてのプロセスで使用される仮想メモリが RAM に含まれるので必要な RAM の量を示します。 この値は常に 4,096 の倍数で、この値は 4,096 の倍Windows。 使用可能な RAM を超えて仮想メモリの需要が増加すると、オペレーティング システムは、使用可能な RAM 使用量を最適化し、ページングを最小限に抑えるために、ワーキング セット内のプロセスの仮想メモリの量を調整します。

  • ページング ファイル、使用されている %pagefile: このカウンターは、実際に使用されているページファイルの量を測定します。

    このカウンターを使用して、ページファイルが適切なサイズかどうかを判断します。 このカウンターが 100 に達すると、ページ ファイルが完全に表示され、動作が停止します。 ワークロードの変動に応じて、ページ ファイルが 50 ~ 075% 以下で使用されるのに十分な大きいページ ファイルが必要な場合があります。 ページファイルの多くが使用されている場合は、複数の物理ディスクを使用すると、パフォーマンスが向上する可能性があります。

  • メモリ、ページ/秒: このカウンターは、最も誤解された手段の 1 つです。

    このカウンターの値が大きいことは、パフォーマンスのボトルネックが RAM の不足に由来するとは限りません。 オペレーティング システムは、メモリ過剰コミットメントのためにページのスワップ以外の目的でページング システムを使用します。

  • メモリ、ページ出力/秒: このカウンターは、1 秒ごとに RAM ページ フレームを解放するためにページ ファイルに書き込まれた仮想メモリ ページの数を示します。

    これは、ページングがパフォーマンスのボトルネックである疑いがある場合に監視する最適なカウンターです。 コミットされたバイト数がインストールされている RAM より大きい場合でも、ほとんどの場合、Pages Output/sec が低またはゼロの場合、RAM が不足してもパフォーマンスに大きな問題はありません。

  • メモリ、キャッシュ バイト、メモリ、プール非ページ バイト、メモリ、プール ページ バイト、メモリ、システム コードの合計バイト数、メモリ、システム ドライバーの合計バイト数:

    これらのカウンターの合計は、4 GB 仮想アドレス空間の共有部分の 2 GB の量が実際に使用されている量を表します。 これらを使用して、システムが前に説明したアーキテクチャ上の制限の 1 つに達するかどうかを判断します。

  • メモリ、使用可能な MBytes: このカウンターは、仮想メモリの要求 (新しい割り当て、またはページ ファイルからのページの復元) を満たすために使用可能な RAM の量を測定します。

    RAM が不足している場合 (たとえば、コミットされたバイト数がインストールされている RAM より大きい場合)、オペレーティング システムは、アクティブに使用されていない仮想メモリ ページをページファイルにコピーすることで、インストールされている RAM の一部を即時に使用できます。 したがって、このカウンターは 0 に達し、必ずしもシステムが RAM 不足かどうかを示す良い兆候とは限りません。

関連情報

アドレス ウィンドウ拡張機能