Windows における RAM、仮想メモリ、ページ ファイルおよびメモリ管理について

文書翻訳 文書翻訳
文書番号: 2160852 - 対象製品
すべて展開する | すべて折りたたむ

目次

概要

この資料には、32 ビット バージョンの Windows の仮想メモリの実装に関する基本情報が記載されています。この情報は、Windows 2000、Windows XP、Windows Server 2003、Windows Vista および Windows Server 2008 に関するものです。(Windows Server 2008 R2 は 64 ビット バージョンでのみ利用可能であるため、この情報には適用されません。)

詳細

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

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

この資料の拡張版は、Bruce Sanderson の Windows のブログに掲載されています。この資料を参照するには、次のブログ サイトを参照してください。
Bruce Sanderson's general Windows information: RAM, virtual memory, pagefile, and all that stuff

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

実際にコンピューターにインストールされている RAM の容量にかかわらず、32 ビット バージョンの Windows で実行されているすべてのプロセス (たとえば、アプリケーションの実行ファイル) には、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 の量のみを変更します。詳細については、以下の資料番号をクリックして、マイクロソフト サポート技術情報資料を参照してください。
268363 Windows 2000 における Intel 物理アドレス拡張 (PAE) について
プロセスで実行されているコードにより使用される 32 ビット仮想メモリ アドレスと、36 ビット RAM アドレス間の変換は、オペレーティング システムにより保持されている変換テーブルに従って、コンピューター ハードウェアにより自動的かつ透過的に行われます。仮想メモリ ページ (32 ビット アドレス) はすべて、物理 RAM ページ (36 ビット アドレス) に関連付けることができます。

以下の表は、さまざまな Windows の各バージョンやエディションがサポートしている最大 RAM 容量について示したものです (2010 年 5 月現在)。
元に戻す全体を表示する
Windows NT 4.04 GB
Windows 2000 Professional4 GB
Windows 2000 Standard Server4 GB
Windows 2000 Advanced Server8 GB
Windows 2000 Datacenter Server32 GB
Windows XP Professional4 GB
Windows Server 2003 Web Edition2 GB
Windows Server 2003 の Standard Edition4 GB
Windows Server 2003 Enterprise Edition32 GB
Windows Server 2003 Datacenter Edition64 GB
Windows Vista4 GB
Windows Server 2008 Standard4 GB
Windows Server 2008 Enterprise64 GB
Windows Server 2008 Datacenter64 GB
Windows 74 GB

ページ ファイル

RAM は制限のあるリソースであるのに対し、実用上仮想メモリーに制限はないと言えます。多くのプロセスが存在可能で、各プロセスは専用の 2 GB プライベート仮想アドレス空間を持ちます。すべての稼動中のプロセスによって使用される総メモリ量が、利用可能な RAM の容量を超えると、オペレーティング システムは 1 つまたは複数の仮想アドレス空間のページ (4 KBの断片) をコンピューターのハード ディスクに移動します。これにより、フレーム メモリが他の用途に解放されます。Windows システムでは、これらの「ページアウトされた」ページは、パーティションのルートにある、1 つまたは複数のファイル (Pagefile.sys ファイル) に格納されます。ディスクの各パーティションに 1 つずつ、そのようなファイルが存在する可能性があります。[システムのプロパティページのファイル サイズと保存場所が構成されている (詳細設定をクリックして、パフォーマンスをクリック、設定 ボタン)。

「ページファイルのサイズはどのくらいにするべきか?」という質問がよくあります。この質問に対する唯一の回答はありません。なぜなら、内蔵されている RAM 容量や作業負荷がどれだけの仮想メモリー量を必要としているかに依存するからです。他に利用可能な情報がない場合は、一般的な推奨である「インストールされている RAM の 1.5 倍」が良い出発点です。一般的にサーバー システムでは、原則ページ ファイルが使用されないように、不足の起きない十分な RAM 容量を確保したいと思うものです。これらのシステムでは、大きいページファイルを確保することに有用な効果はないでしょう。一方、ディスクの空き領域が十分にある場合は、大きなページファイル (たとえば、インストールされている RAM の 1.5 倍) が問題を起こすことはありません。また、これでどれくらい大きいページファイルを作成すればいいか悩む必要もなくなります。

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

いかなるコンピューター システムにおいても、負荷 (ユーザー数、作業量) の増加に伴い、直線的な形態ではないものの、パフォーマンスが低下します。いかなる負荷または要求の増加においても、それが一定の地点を超えると、顕著なパフォーマンスの低下の原因となります。これは、一部のリソースが極めて不足し、ボトルネックとなっていることを意味しています。

ある時点で、不足しているリソースを増加させることはできません。これは、アーキテクチャ上の制限に達してしまっていることを意味しています。よく話題となる Windows アーキテクチャ上の制限事項には次のようなものがあります。
  • システム (カーネル) 用共有仮想アドレス空間における 2 GB
  • プロセス (ユーザー モード) 単位のプライベート仮想アドレス空間における 2 GB
  • システム PTE ストレージ (Windows Server 2003 およびそれ以前) における 660 MB
  • ページド プール ストレージ (Windows Server 2003 およびそれ以前) における 470 MB
  • 非ページ プール ストレージ (Windows Server 2003 およびそれ以前) における 256 MB
これは Windows Server 2003 固有の適用事項ですが、Windows XP および Windows 2000 にも当てはまります。しかしながら、Windows Vista、Windows Server 2008、および Windows 7 については、こうしたアーキテクチャ上の制限事項をすべて共有しているとは限りません。ユーザーおよびカーネル メモリ (上記の最初と 2 番目) における制限事項については同じですが、PTE のようなカーネル リソースや、種々のメモリ プールについては動的です。この新機能は、ページド メモリおよび非ページ メモリの両方を有効にします。これは、すでに説明したような制限を超え、カーネルすべてが使い果たされる時点に至るまで PTE やセッション プールを拡張することも可能にします。

よく見かけ、引用もされる説明文に次のようなものがあります。
「Terminal Server では、4 GB の RAM が使用される前に、共有アドレス空間の 2 GB が完全に使用される。」
これは、場合によっては真、と言えます。しかし、お使いの個別のシステムに当てはまるかどうかを確認するには、お使いのシステムを監視する必要があります。こうした説明文は、Windows NT 4.0 または Windows 2000 固有の環境から結論づけられた場合もあり、必ずしも Windows Server 2003 にも適用されるとは限りません。運用中に、このようなアーキテクチャ上の制限事項に実際に達する確率を減らすために、Windows Server 2003 には大幅な変更が加えられました。たとえば、共有仮想アドレス空間で使用されるメモリ量を削減するため、カーネルに存在していたプロセスのいくつかが非カーネル プロセスに移動されました。

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

パフォーマンス モニターは、システムのパフォーマンスを監視し、ボトルネック箇所を識別するための主要なツールです。パフォーマンス モニターを起動、[スタート] ボタン、[コントロール パネル] をクリックして、管理ツール] をクリックして、[パフォーマンス モニター] をダブルクリックします。いくつかの重要なカウンター、およびそこから読み取れる内容についての概要を以下に示します。
  • Memory、Committed Bytes : このカウンターは、仮想メモリの需要量を示します。

    これは、プロセスにより割り当てられ、オペレーティング システムが RAM ページ フレームまたはページ ファイル内のページ スロット (あるいはその両方) にコミットしたバイト数を示しています。としてCommitted Bytes 成長、使用可能な ram の容量を超えるページングが増加し、使用されているページファイルのサイズが増加しても。一定の時点で、ページング動作がパフォーマンスに大きく影響し始めます。
  • Process、Working Set、_Total : このカウンターは、「アクティブに」使用されている仮想メモリ量を示します。

    このカウンターは、どれがすべてのプロセスの仮想メモリ beingused メモリでのメモリが必要です。この値は、常に 4,096、この、Windows で使用されているページ サイズの倍数です。仮想メモリの要求が利用可能な RAM を上回って増大するに連れ、利用可能な RAM を最適化し、ページングを減少させるために、オペレーティング システムはワーキング セット内のプロセッサの仮想メモリ量を調整します。
  • Paging File、%pagefile in use : このカウンターは、実際に使用されているページ ファイルの量を示します。
    このカウンターを使用して、ページ ファイルのサイズが適切かどうか判断します。このカウンターが 100 に達すると、ページ ファイルがいっぱいになり、あらゆるものが機能しなくなります。作業負荷の変化に応じて、通常は最大でも 50 〜 75 % の使用にとどまる十分に大きいサイズを持つページ ファイルが必要とされます。ページファイルの Ifmuch が使用されている、複数の異なる物理ディスク上で、パフォーマンスを向上させることが。
  • Memory、Pages/Sec : このカウンターは、最も誤解されている基準の 1 つです。

    このカウンターの値が高いことが、必ずしもパフォーマンスのボトルネックが RAM 不足に起因していることを意味しているとは限りません。オペレーティング システムは、メモリのオーバー コミットメントによるページのスワッピング以外の目的でページング システムを使用しています。
  • Memory、Pages Output/Sec : このカウンターは、他の目的用に RAM ページ フレームを解放するために書き込まれた、1 秒あたりの仮想メモリ フレーム数を表示します。

    これは、ページングがパフォーマンスのボトルネックであることが疑われる場合に監視を行うには最適なカウンターです。場合でも、バイト数のコミットされたページ メモリが少ない場合は、インストールされている ram の容量より大きい値は、0 ほとんどの場合、RAM の不足から大幅なパフォーマンスの問題はありません。
  • Memory, Cache Bytes,
    Memory, Pool Nonpaged Bytes,
    Memory, Pool Paged Bytes,
    Memory, System Code Total Bytes,
    Memory, System Driver Total Bytes:
    これらのカウンター数値の合計は、4 GB の仮想アドレス空間の共有部分である 2 GB のうち、実際に使用されている量を示しています。これらを使用して、お使いのシステムが前述したようなアーキテクチャ上の制限のいずれかに到達しようとしているかどうかを判断します。
  • Memory、Available MBytes : このカウンターは、仮想メモリの要求 (新規アロケーション、またはページ ファイルからのページの復元のいずれか) を満たすために利用可能な RAM 量を示します。

    RAM の供給が不足している時 (たとえば、Committed Bytes の方がインストールされている RAM より大きい場合)、オペレーティング システムは、現在使用されていない仮想メモリ ページをページ ファイルにコピーすることで、インストールされている RAM の一定部分を直ちに使用できるように保持しようとします。したがって、このカウンターがゼロに到達することはなく、お使いのシステムが RAM 不足であるかどうかを適切に示している、とは必ずしもいえません。
以上の話題に関する詳細については、次のマイクロソフト web サイトおよびブログ サイトを参照してください。

プロパティ

文書番号: 2160852 - 最終更新日: 2014年4月5日 - リビジョン: 7.0
この資料は以下の製品について記述したものです。
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Datacenter Server
  • Microsoft Windows 2000 Professional
  • Microsoft Windows 2000 Server
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional
  • Microsoft Windows Server 2003 R2 Datacenter Edition (32-Bit x86)
  • Microsoft Windows Server 2003 R2 Enterprise Edition (32-Bit x86)
  • Microsoft Windows Server 2003 R2 Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Web Edition
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Windows Vista Business
  • Windows Vista Enterprise
  • Windows Vista Home Basic
  • Windows Vista Home Premium
  • Windows 7 Enterprise
  • Windows 7 Home Basic
  • Windows 7 Home Premium
  • Windows 7 Professional
  • Windows 7 Ultimate
キーワード:?
kbsurveynew kbinfo kbhowto kbexpertiseadvanced kbmt KB2160852 KbMtja
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:2160852
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com