空き物理RAMがあるときにWindows 7がページファイルを使用するのはなぜですか?


43

Windows 7 64ビットと8G RAMを使用しています。しばらく使用した後、Windowsが低迷しているように感じます。ドライブがスラッシングしています。リソースモニターとディスクアクティビティを見ると、ページファイル(c:\ pagefile.sys)の使用例がいくつかあります。物理メモリを確認すると、約2.3Gの使用可能なメモリと700Mの空きメモリがあります。

なぜWindowsはより多くの空きメモリとより少ないページファイルを使用しないのですか?xの量のフリーラムを残す必要がありますか?物理的なラムの割合ですか?

私の計画は、メインドライブ用のRAMとSSDを増やすことです。その間、パフォーマンスの低下に苦しんでいます。


1
ページファイルへの書き込み/読み取りを行っているからといって、それを使用しているわけではありません。突然の要求があった場合にメモリをより早くダンプできるように更新しているだけかもしれません。パフォーマンスモニターを実行する か、詳細な診断を行って、動作が遅くなっている原因を確認することをお勧めします
スコットチェンバレン

8GBを超えるRAMを使用しても、99。(9)%のパフォーマンスは向上しません。モボに安価な低周波数/高レイテンシのRAMチップを詰めましたか?それらを置き換えることは、さらに追加するよりも良いアイデアです。
kotekzot

3
@kotekzotそれは依存します。私は一般に、ほとんどのボトルネックでRAMのレイテンシがわずかに無視できることを発見しました。彼がすべてのAltキーを押しながらTabキーを押してアプリケーションがページインされるのを待つ必要がないほど十分なメモリがある場合、ほとんどの場合、次の最大のボトルネックはほとんど常にハードドライブであり、SSDがそれを修正しますアップ。
ダースアンドロイド

@ramがもっとあれば、ページファイルをramdiskに入れることができます。これはHDアクセスよりもはるかに高速です。Dellのラップトップワークステーションレベルなので、コンポーネントは安くないはずです。ラップトップは、デスクトップよりもハードドライブとIOサブシステムが遅いことを認識しています。
トニーヘンリッチ

1
ページファイルをRAMdiskに置かないでください。これにより、システムにページフォールトが発生するだけです。はい、RAMディスク上のページファイルにアクセスする場合は、実際のディスクに移動する場合よりも迅速に解決されますが、まったく存在しない場合の方がはるかに高速です。また、ページフォールトの増加の多くは、マップされたファイルに対するものであり、RAMdiskによる支援はまったく受けません。
ジェイミーハンラハン14

回答:


33

まず、ページファイルをSSDに配置しないでください。SSDはウェアレベリングについては改善されていますが、ページファイルは頻繁に書き込まれ、一般的な使用よりもはるかに速くSSDを劣化させます。

多くの人が理解していないのは、ウィンドウに空きメモリが実際にはないことです。バーストデマンドに備えて空いているMBがいくつかありますが、そうでない場合は、アクティブな使用中のアプリケーションメモリと合計メモリの差は、一般に「スタンバイ」メモリと呼ばれるものによって消費されます。

システムメモリ

これらは、必要に応じてダンプできるメモリページです(スタンバイメモリは優れた大きなキャッシュです)。したがって、アプリケーションの観点からは使用可能ですが、決して使用されていません。通常、これらはディスクキャッシュまたはページファイルキャッシュとして機能します。

Windowsの目標は、使用パターンに基づいて、このスタンバイキャッシュで使用される可能性が最も高いデータを保持することです。工夫された例を使用するには、デスクトップのコンテンツをこのスタンバイメモリにキャッシュすることで、Windows Update(通常は週に1回実行するように構成)などのプログラムのプライベートメモリの相対値を比較します。

ほとんどの時間、Windows Updateはスリープ状態です。それはメモリを保持しており、ほとんどの場合、スケジュールが来るのを待っている間はまったく価値がありません。一方、デスクトップフォルダーの内容は、特にファイルを保存したい場合は、常に照会される場合があります。

この場合、Windowsが行うことは、Windows Updateに割り当てられたメモリをページアウトすることです(メモリが「満杯」ではない場合でも、RAMで利用可能なスペースを使用してデスクトップのコンテンツをキャッシュします。君は。

Windowsは、これらの決定を何千も行い、アクティブなアプリケーションのメモリ要求とバランスを取りながら、バックグラウンドサービスによって常に書き込まれている数百のファイルのディスクキャッシュを管理しています。しばらく間違えることがあり、しばらくバックグラウンドでスリープしているアプリケーションに切り替えると、データがメモリに戻されるのを待つ必要があります。しかし、あなたが考えなければならないのは、そのアプリケーションをメモリ内に完全に保持していた場合、ディスクの書き込みと読み取りが完了するのを待っている他のアプリケーションがいくつ停止しているのか、それとも強制的にページアウトするのですか?それまでに使用していたアプリケーションがあった場合はどうでしょうか?


アプリケーションは、スタートアップコード(一度使用してから不要)、シャットダウンコード(一度使用してから不要)、更新コードなど、めったに使用されないメモリページを頻繁に割り当てます。より重要な用途がある場合、これらすべてをメモリに保持するのは実用的ではないため、Windowsがアプリケーションの現在の操作に不要なコードのセクションを特定すると、それらのセクションをページファイルに喜んでページアウトします。技術的にはメモリに保持できます。

(実際、アプリケーションによっては、システムが実際よりも多くのメモリを割り当てることが多く、そのほとんどがページアウトすることを期待している場合があります。 Windowsがさまざまなアプリケーションに割り当てたメモリ量です。ページファイルは、それをカバーするのに十分な物理RAMがない場合でも、このメモリを保証するために使用されます。


質問の中で、使用可能なメモリと空きメモリを区別したことに気づきました。あなたが講義をし、すでに違いを知っていると感じた場合、私の謝罪。理想的には、空きメモリは常に0です。ただし、スタンバイメモリは解放可能なメモリですが、常に迅速に解放できるメモリとは限りません。1GBのファイルをディスクに書き込もうとすると、Windowsは可能であればメモリ内のディスクキャッシュに貼り付け、バックグラウンドでゆっくりとハードドライブに書き込みます。アプリケーションが50MBの追加メモリを要求する必要があるが、この巨大なディスクキャッシュがまだフラッシュアウトされているため使用可能なメモリがない場合、アプリケーションは使用可能になるまでハングします。小さなバッファを手元に置いておくことで、システムはユーザーの観点からの遅延を最小限に抑えてこの問題を解決できます。


6
@FrankComputer私が8GB作業システム用に投稿したスクリーンショットを参照してください:6300MB使用中、1700MBスタンバイディスク/キャッシュ、42MB無料。私のホームシステム(32GBメモリ)を見ると、実際は正しいのですが、間違ったしきい値(使用中の9.2GB、14.5GBのディスクキャッシュ、8.6GBの空き容量)が間違っています。ウィンドウが単にキャッシュするものを使い果たした場合、空きメモリがありますが、そのしきい値はかなり高いです。ディスクキャッシュはスワップ領域ではないため、Windowsは常にスワップしていません。ファイルが要求されたときに、キャッシュ内ではなく、受動的にキャッシュされます。キャッシュからプルする時間に気付かず、HDDアクティビティはありません。
ダースアンドロイド

8
@FrankComputer:システムのパフォーマンスが良好な場合、それは空きメモリが原因ではありません。空きメモリは、システムがメモリされていない使用して、それはあなたの机の上に座ってメモリよりもパフォーマンスにこれ以上の効果を持つことができます。メモリのパフォーマンスを向上させる唯一の方法は、メモリを使用することです。したがって、メモリが無料の場合、パフォーマンスの向上には使用されません。空きメモリを増やすと、使用量が減り、パフォーマンスが低下します。
デビッドシュワルツ

1
@Tony_Henrichページファイルを無効にするのは悪いことです。ひどい。(ページファイルをRAMディスクに移動することは、無効にすることと実質的に同じです。Windowsは、必要のないデータをすぐにメモリから移動することはできません)。多くのプログラムは、すぐには必要ではないが、将来必要になる可能性があるメモリを要求します。通常、ウィンドウはこのメモリをページファイルに割り当て、何も行いません。例えば。MSSQLサーバーは、起動時に8GBのRAMを割り当てます。0個のデータベースでも。という理由だけで。ページファイルをRAMディスクに配置すると、キャッシュに使用できるRAMのかなりの量が無駄になります
Darth Android

1
@Tony_Henrich現在、システムの使用方法を考えると、windowsはページファイルとRAMを最適に管理しています。改善できるのは、メモリを追加するか、OSをSSDに移動することだけです。ページファイルをいじると、システム全体のパフォーマンスが最高の状態で低下するか、最悪の場合システムの安定性に影響します。
ダースアンドロイド

1
Windowsがメモリで行うことを説明しています。空きメモリがたくさんある場合は、アプリがスリープしているか何もしていないかどうかに関係なく、Windowsはそれを使用する必要があります。メモリが利用可能な場合、メモリ内に保持することの害は何ですか。メモリが少なくなると、Windowsはページファイルを使用できます。ページファイルを使用すると、ドライブの消耗が生じます。メモリの使用に磨耗はありません。次に、ページファイルにSSDを使用します。SSDの寿命はハードドライブよりも小さく、書き込みも多くありますが、摩耗は数か月続きます。まだ数年です。
トニーヘンリッチ

4

先の計画と呼ばれます。

RAMがまだ十分にあるときにメモリページをページファイルに書き込むのは良いことです。プログラムが空き容量よりも多くのメモリを要求するとすぐに、OSはできるだけ早くスペースのクリアを開始できます。後よりも今すぐ準備する方が良い。

OSが待機する場合、パフォーマンスのボトルネックが発生します。プログラムが使用可能なメモリよりも多くのメモリを要求する場合、OSが変更されたメモリブロックを書き出すまで待機してから解放する必要があります。


16G +および軽量プログラムでは、プログラムが空き容量よりも多くのメモリを要求する時間は、ページファイルを頻繁に使用する場合よりもはるかに少なくなります。そのため、これらのケースでは、空きメモリの一部を使用し、ページファイルを少なくする方が適切です。すべてのケースに適合するソリューションはありません。
トニーヘンリッチ

1
私はあなたがそれを得るとは思わない。どちらかである必要はありません。Windowsは、空きメモリに書き込むことができますし、ページファイルへの書き込み。ページファイルへの書き込みメモリへの書き込みとは異なります。
surfasb

1
しかし、前もって計画しようとすることで、WindowsはHDD / SDDのオンチップキャッシュを一杯にして、同時ファイルの書き込み/読み込み操作を遅くする可能性はありませんか?このRAMの事前交換は良いアイデアのように聞こえますが、偶然にシステムに負荷がかかるように思われます。
ビンキ

1
@binki:はい、それはディスクの読み取り/書き込み時間に干渉しますが、思い出すと、それらはより低い優先度を使用しているので、他の読み取り/書き込みは一般的に最初に行く必要があります。
Mooingダック


2

過去7年間、ページファイルをオフにしました。実際、新規インストール後、最初に行うことです。問題はありませんでした。(実際には、「titan quest」というゲームが起動時に非常に愚かなチェックを実行していたため、4 MBのページファイルを作成して、それを満足させ、後でPFをオフにしました)。元の質問は。Windowsは、ディスクI / OキャッシュにRAMを使用します。何らかの理由で、アクティブなプログラムのコードとデータにとってディスクキャッシュも同様に重要であると考えています。また、ディスクキャッシュサイズを制限する方法はありません。それは設計上そこにあり、私たちはそれについて何もできません...ああ、待ってください!私たちはできる!ページファイルをオフにしてください。RAMが重いアプリケーションを実行していますか?RAMを追加購入するか、あるアプリを閉じてから別のアプリを起動します。Process Explorerを使用して、特定の時点で使用されているメモリ量を確認できます。


1
ページファイルを削除しても、ディスクキャッシュはオフになりません。
ジェイミーハンラハン

1
あなたは次のように書いています:「[ディスクキャッシュ]は設計上そこにあり、私たちはそれについて何もすることができません。さて、ページファイルをオフにしても、ディスクのキャッシュについては何もしません。とにかく馬鹿げたアイデアです。OSに触れると、すべてのプライベートコミットがRAMに永久に保持されるためです。これにより、マップされた仮想メモリ(コードなど)のスペースが少なくなるため、より多くのものをページングする必要があります。プロアクティブディスクキャッシュ(スーパーフェッチ)は、上記のすべての後に残ったものを使用するため、どちらのページングも増加しません。
ジェイミーハンラハン

1
ページファイルをオフにすることはあなたのアイデアだとは言わなかった(または考えなかった)ので、「あなたのアイデア」については何も言わなかった。ああ、私はここにいますが、「何らかの理由で[Windows]はアクティブなプログラムのコードとデータにとってディスクキャッシュも同様に重要だと考えています」はまったく間違っています。Superfetchはスタンバイリストにあるページのみを使用するため、それはプログラムのページになりません。利用できる」RAMコードとデータをそしてそれらのページが。残っている彼らは、ファイルからキャッシュされたデータが含まれた後も、コードとデータ、プログラムのすなわちすぐに利用可能な。
ジェイミー・ハンラハン

1
私はそのようなことを言っていません。(これはどこで入手できますか?)しかし、Windowsはディスクキャッシュ用のスペースを確保するために何もページングしません。それどころか、キャッシュは現在プロセスの一部ではないページを使用するため、そうでなければ無駄になります。このようなRAMが残ってすぐのものをページングのためにそれを必要とするコードとデータが利用可能、それがキャッシュで「使い切る」されないように、単に「借り」、、。したがって、キャッシュは、RAMにページングまたは保持できるコードとデータの量を削減しません。参照:Solomon、Russinovich、およびIonescuによるWindows Internals
ジェイミーハンラハン

1
私はすでにDAの回答で答えました。しかし、あなたが言ったことは彼が言ったことではありません。彼は、Windowsが長時間非アクティブなプロセスをページアウトすると述べた(true)。そして、彼はまた、ディスクキャッシュがそれによって解放されたページを使用するかもしれないと言いました(これも真実です)。しかし、それはディスクキャッシュが必ずしも優先されることを意味しません。ディスクキャッシュは、優先度の高い他のページがそれらを必要としない場合にのみ、それらのページを使用します。膨大な量のテストにより、これが良いトレードオフであることが実証されています。
ジェイミーハンラハン

1

十分なRAMがある場合でもページファイルを保持および使用するための引数(hereおよびhere)は次のとおりです。

  • 現在、空きメモリがあったとしても、マシンは後でメモリを使い果たす可能性があります。事前にメモリのほとんど使用されていない部分をディスクにドロップする方が良いでしょう。
  • 空き容量として表示されるが、実際にはディスクキャッシュに使用される「スタンバイ」メモリもあります。また、パフォーマンスにとっても重要です。
  • ページファイルを無効にしてRAMが不足すると、ハードクラッシュになります。
  • 2、4、16、またはその他の数のGbのRAMは「たくさん」に見えるかもしれませんが、これはあなたが信じているほど真実ではないかもしれません。プロファイルする必要があります。

Windowsリソースモニターを使用すると、キャッシュに使用されているRAMの量を確認できます(「スタンバイ」と表示)。

RAMが実際に使用されているか、スタンバイ状態にあることがわかった場合、ページファイルが役立ちます。タスクと使用可能なRAMの組み合わせにより、メモリの大部分が未使用(「空き」)として表示される場合は、ここで「よく知っている」と言った人に関してのみハードドライブを研磨する必要はないと思います。 「。


-2

これらのすべてのコメントと正解はありません。ページファイルをオフにします。8GB RAMでは必要ありません。さらにRAMが必要な場合は購入してください。本当に簡単です。


4
Windowsは、ページファイルに何を入れるか(入れないか)を決定するのに非常に賢いです。一部のほぼ純粋に理論的なシナリオを除き、8 GBのRAMを使用しても、オフにするとパフォーマンスが低下します。正しい答えが欠けていたとしても、これは確かにそうではありません。
マルクストーマス

4
「害のパフォーマンス」の主張を裏付ける証拠はありますか?私は、MSの記事提示support.microsoft.com/kb/889654
a2552308

6
簡単に言えば、ページファイルはディスクアクティビティを増加させるだけです...そして、Windowsには、RAMが十分にある場合、まったく使用しないほどスマートではありません。SSDシステムではこれはあまり目立たないかもしれませんが、スピンドルシステムではこれはアプリケーションのパフォーマンスに大きな影響を与える可能性があります。元のポスターを参照してください。
a2552308

2
MS記事の関連セクション:「ただし、コンピューターにRAMが追加されると、ページファイルの必要性が減ります。コンピューターに十分なRAMがインストールされている場合、ページファイルは必要ない場合があります。特定のアプリケーションによって。」リンクした多くの記事から関連するセクションを見つけることができませんでした。関連するセクションを引用できますか?
a2552308

2
理論的には良さそうに聞こえますが、実際に私が観察したものではありません。
a2552308
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.