8 GBのRAMマシンでページファイルを削除することによるメリットまたはデメリットはありますか?


213

8 GB RAMを搭載したx64 AMDのデュアルコアでWindows 7を実行しています。

ページファイルも必要ですか?

削除するとパフォーマンスが低下しますか?

これがサーバーなのかデスクトップなのかで違いが出るでしょうか?

Windows 7とWindows 2008では、ページファイルに違いがありますか?

回答:


299

TL; DRバージョン:Windowsにメモリ/ページファイルの設定を処理させます。MSの人々は、ほとんどのシステム管理者よりもこれらの問題について考えるのに多くの時間を費やしました。

多くの人は、Windowsがデータをオンデマンドでページファイルにプッシュすると想定しているようです。EG:何かが大量のメモリを必要とし、ニーズを満たすのに十分なRAMがないため、WindowsはRAMから新しい要求に合わせてRAMを解放できるように、RAMからディスクにデータを書き込み始めます。

これは間違っています。ボンネットの下ではさらに多くのことが行われています。一般的に、Windowsはバッキングストアを保持します。つまり、メモリ上のすべてのものをディスク上のどこかに見たいということです。さて、何かが来て大量のメモリを必要とする場合、WindowsはRAMを非常に迅速にクリアできます。そのデータは既にディスク上にあり、必要に応じてRAMにページバックできるようになっているためです。したがって、ページファイルにあるものの多くはRAMにあると言えます。新しいメモリ割り当て要求を高速化するために、データはページファイルにプリエンプティブに配置されました。

多くのページを(の章7を参照取る関与する特定のメカニズムを説明Windowsの内部を、そしてことに注意新版がすぐに利用できるようになります)が、注意すべきいくつかの素晴らしいものがあります。まず、RAMにあるものの多くは本質的に既にディスク上にあります。たとえば、実行可能ファイルまたはDLLから取得したプログラムコードです。したがって、これをページファイルに書き込む必要はありません。Windowsは、ビットが最初にフェッチされた場所を簡単に追跡できます。第二に、WindowsはRAM内のどのデータが最も頻繁に使用されるかを追跡し、RAMからアクセスされずに最も長くなったデータを消去します。

ページファイルを完全に削除すると、ディスクのスラッシングが発生する可能性があります。一部のアプリが起動し、既存のRAMの80%を要求するという単純なシナリオを想像してください。これにより、現在の実行可能コードがRAMから強制的に削除される可能性があります(OSコードでさえ)。これで、他のアプリ、またはOS自体(!!)がそのデータへのアクセスを必要とするたびに、OSはディスク上のバッキングストアからそれらをページングする必要があり、スラッシングにつながります。一時データのバッキングストアとして機能するページファイルがないため、ページ化できるのは、固有のバッキングストアが最初にあった実行可能ファイルとDLLだけであるためです。

もちろん、多くのリソース/使用シナリオがあります。ページファイルを削除しても悪影響がないシナリオの1つがあることは不可能ではありませんが、これらは少数です。ほとんどの場合、ページファイルを削除または削減すると、リソース使用率のピーク時のパフォーマンスが低下します。

いくつかの参照:

dmoは、仮想メモリの理解に役立つ最近のEric Lippertの投稿指摘しました(ただし、質問とはあまり関係ありません)。一部の人は他の回答にスクロールしないと思うので、ここに入れています-しかし、あなたがそれを価値があると思うなら、あなたはdmoに投票する義務があるので、そこに着くためにリンクを使用してください


25
ジェフとジョエルのために:それは「カモ」と韻を踏む
quux

2
Solarisでは、さらに複雑でした。スワップファイルはtmpfsのようなRAMディスクにミラーリングされているため、メモリは常にほぼ一杯です-しかし、これが最適な戦略であることは明らかです。
マーティンベケット

2
Windowsでページファイルサイズを管理できるようにするのではなく、固定サイズ(最小2GB、最大2GBなど)に設定する必要があると長い間考えていました。それは良い考えですか、それとも最初の行に従ってWindowsにすべてを処理させるべきですか?
ジョン・フーヒ

2
@Mehrdad:RAMの50%を解放する必要がないためです。もちろんできますが、アクティブデータのディスクキャッシュとして使用できる物理RAMの50%が失われます。空きRAMは非効率性の兆候です。道路ではなく倉庫にあるフェデックストラックのようなものです。積み込みと積み下ろしに時間をかけすぎているため、貨物をできるだけ移動していないことを意味します。
デビッドシュワルツ

2
@Mehrdad:問題は、ページファイルがないため、アクセスされない可能性が高いにもかかわらず、RAMに保持する必要があるデータが大量にあることです。たとえば、システムの起動時に開始されたが、数日間使用されないサービスを提供するプロセスによって割り当てられたメモリを考えてみてください。システムは、データがアクセスされないことを証明できず、データを保持するためのRAM以外の場所がありません。そのため、データが数日間アクセスされていないRAMに保持されている間、ディスクキャッシュが縮小します。
デビッドシュワルツ

80

Eric Lippertは最近、Windowsがメモリを管理する方法を説明するブログエントリを書きました。要するに、Windowsメモリモデルは、RAMがパフォーマンスを向上させるキャッシュとして機能するディスクストアと考えることができます。


47

他の回答からわかるように、ページファイルを無効にしたのは私だけであり、決して後悔していません。すばらしいです :-)

自宅でも職場でも、8 GBのRAMを搭載したVista 64ビットを使用しています。どちらもページファイルが無効になっています。職場では、Visual Studio 2008、Windows XPを搭載したVirtual PC、SQL Serverの2つのインスタンス、および多くのタブが連動するInternet Explorer 8のインスタンスがほとんどないことは珍しくありません。メモリの80%に達することはめったにありません。

また、毎日ハイブリッドスリープ(睡眠を伴う冬眠)を問題なく使用しています。

2 GBのRAMを搭載したWindows XPを使用していて、実際にその違いを実感しました。典型的な例は、コントロールパネルのアイコンが次々に表示されなくなったが、一度にすべてが表示されなくなった場合です。また、Firefox / Thunderbirdの起動時間が劇的に増加しました。何かをクリックするとすぐにすべてが機能し始めました。残念ながら、2 GBはアプリケーションの使用(Visual Studio 2008、Virtual PCおよびSQL Server)には小さすぎたため、有効に戻しました。

しかし、現在8 GBでは、ページファイルを有効に戻すことは決してありません。

極端なケースについて言っている人のために、これを私のWindows XP時代から取ってください。
SQLクエリからExcelで大きなピボットテーブルを読み込もうとすると、Excel 2000はメモリ使用量をかなり速く増加させます。
ページファイルを無効にしている場合-少し待ってからExcelが爆発し、システムはその後のすべてのメモリをクリアします。
ページファイルを有効にしている場合-しばらく待ってから、何かがおかしいことに気づいたら、システムでほとんど何もできません。あなたのHDDは地獄のように機能しており、たとえなんらかの方法で(数分待ってから)タスクマネージャを実行して殺しexcel.exeても、システムがページファイルからすべてをロードするまで1分ほど待たなければなりません。
後で見たように、Excel 2003は、ページファイルを無効にしても問題なく同じピボットテーブルを処理します。したがって、「データセットが大きすぎる」という問題ではありませんでした。

そのため、私の意見では、無効なページファイルは、不十分な記述のアプリケーションからユーザーを保護することさえあります。

まもなく:メモリ使用量を認識している場合は、安全に無効にできます。

編集: Windows Vista SP2を問題なくインストールしたことを追加したいだけです。


3
ページファイルを無効にしましたが、実際にメモリを使用した瞬間に後悔しました。したがって、必要以上に多くのメモリがあることに満足してください。
サム

7
+1、「私も」:-)。同じ話-8 GBメモリ、Vista x64、ReSharper + SQL Server Express + IIS + 1-2仮想マシン(それぞれ1500 MBのメモリ)+多数のユーティリティでVisual Studioを実行-問題はありませんでした。
ミラノガーディアン

21
誰もが「マイクロソフトはこの問題について多くの時間を費やしてきたので、混乱させないでください」と言っているのに、実世界の経験を完全に無視しているのが大好きです。XP以降、ページングファイルを無効にしましたが、後悔することはありませんでした。これは、コンピューターに驚くべきものが注入されたようなものです。
AngryHacker

4
iSCSIで起動するサーバーでページングを無効にするのは、かなり標準的な方法です。SA​​Nでのページングは​​、顕著に遅くなります。あなたは本当にあなたのメモリ使用量を監視し、最大値から離れる必要があります。
クリスS

6
-1この回答には参考文献がありません。ページファイルが無効になり、ページプールメモリがいっぱいになったため、実際にシステムがクラッシュしました。しかし、私の物理メモリ使用量は2 GBのみで...だった
タマラWijsman

34

ページファイルの調整を行う前に、システムがメモリをどのように使用しているかを理解するために、何らかの測定を行うことができます。または(あなたはまだ調整をしたい場合)、前と後の調整は言いました。

Perfmonはこのためのツールです。タスクマネージャではありません。キーカウンターはMemory-Pages Input / secです。これにより、プロセスを続行する前にディスクからの読み取りが必要なハードページフォールトが具体的にグラフ化されます。ソフトページフォールト(既定のページフォールト/秒カウンターでグラフ化されるアイテムの大部分です。このカウンターを無視することをお勧めします!)は、実際には問題ではありません。通常、RAMから読み取られるアイテムを表示するだけです。

Perfmonグラフhttp://g.imagehost.org/0383/perfmon-paging.png

上記は、メモリに関する心配のないシステムの例です。ごくまれに、ハードフォールトのスパイクがあります-ハードディスクは常にRAMよりも大きいため、これらは回避できません。しかし、グラフはゼロでほぼ平坦です。そのため、OSがバッキングストアからページインすることはほとんどありません。

あなたが見ている場合はメモリ-ページ入力/秒のこの1よりもはるかにspikierでグラフを、右の応答のいずれか低いメモリの使用率(以下のプログラムを実行)またはRAMを追加することです。ページファイルの設定を変更しても、システムが実際よりも多くのメモリを要求しているという事実は変わりません。

監視するのに便利な追加のカウンターは、PhysicalDisk-Avgです。キューの長さ(すべてのインスタンス)。これは、変更がディスク使用量自体にどの程度影響するかを示します。正常に動作するシステムでは、このカウンターがスピンドルごとに 4以下で平均化されます。


1
スワップファイルを検査する方法を示すために、誰かが邪魔をすることさえあえぎます。驚くばかり。
cgp

1
画像へのデッドリンク。修正されたニーズ。
-kinokijuf

はい、「ImageHost.orgは閉鎖されています」
ピーターモーテンセン

34

何年も問題なく、ページファイルなしで8 GB Vista x64ボックスを実行しました。

本当に記憶を使ったときに問題が発生しました!

3週間前、私はPhotoshopで非常に大きな画像ファイル(約2 GB)の編集を開始しました。1回の編集セッションですべての記憶が枯渇しました。問題:Photoshopがファイルを保存するためにより多くのメモリを必要とするため、作業を保存できませんでした!

そして、それはすべてのメモリを食い尽くしているPhotoshopそのものだったので、プログラムを閉じることでメモリを解放することさえできませんでした(まあ、私はしましたが、助けにはなりませんでした)。

作業を破棄し、ページファイルを有効にして、すべての作業をやり直すだけでした。これにより多くの作業が失われ、ページファイルを無効にすることはお勧めできません。

はい、ほとんどの場合うまく機能します。しかし、それが壊れた瞬間に痛みを感じるかもしれません。


7
あなたはより頻繁に保存する必要があります。被害を最小限にするために、D
alexandrul

1
簡単に言うと、保存に数分かかる場合、これはピタです。
サム

より複雑なソフトウェアを使用すれば、私たちは皆幸せになりますが、「クラッシュ」が「しばらくは保存していません」と一致することもあります。
デイモン

19

ここでの答えはトピックを非常によくカバーしていましたが、私はまだこれを読むことをお勧めします:

http://blogs.technet.com/markrussinovich/archive/2008/11/17/3155406.aspx

彼はほとんど最後にPFサイズについて話します。

ページングファイルがないとパフォーマンスが向上すると感じる人もいますが、一般に、ページングファイルがあると、Windowsは変更リスト(アクティブにアクセスされていないがディスクに保存されていないページを表す)にページを書き込むことができますファイルをページングして、そのメモリをより有用な目的(プロセスまたはファイルキャッシュ)に使用できるようにします。そのため、ページングファイルを使用せずにパフォーマンスが向上するワークロードもありますが、一般的には、システムで使用可能なメモリが増えることを意味します(Windowsは、ページングファイルのサイズが大きくないとカーネルクラッシュダンプを書き込めないことに注意してください)それらを保持するのに十分な)。

私はマークの記事が本当に好きです。


+ 1、Mark Russinovichリンクの場合はシンプル。スワップファイルを無効にすると、「システムの問題を追跡」できないことを示すためにwin7が通知をポップアップすることも指摘する価値があります。
cgp

13

私が考えることができる最良の答えは、通常の負荷では8 GBを使い切ることはできないが、トラブルに遭遇するのは予期しない負荷であるということです。

ページファイルを使用すると、システムはページへのヒットを開始すると少なくとも遅くなります。しかし、ページファイルを削除すると、(私の知る限り)死んでしまいます。

また、8 GBは今では多くのように見えますが、数年後には、多くのソフトウェアの最小メモリ量と見なされる可能性があります。

いずれにせよ-少なくとも小さなページファイルを保持することをお勧めします。しかし、私がオフベースの場合は他の人が私を修正してください。


4
私はもう少し進んで、ページファイルをキャップしません。それは本当に物事を改善していません。窓にそれをさせてください...彼らはよりよく知っています。
マイケルハーレン

1
Media Player Classicを使用して6GB mkvファイルをロードしようとしました。RAMとページファイルメモリが不足しました。すぐにVLCに戻りました。「何に出会うかわからない」ための+1。最終的にMPCがクラッシュし、RAMが復元されましたが、メモリリークのあるサードパーティソフトウェアでDLLを取得した場合はどうなりますか?あなたがあなたを助けるためにいくつかのディスクでバックアップされたメモリを持っている場合、あなたははるかに多くの走行距離を持つことになります。
mpbloch

1
それに加えて、実際にそれを使用することを常に恐れなければならない場合、8GBを使用する利点は何ですか?!
デビッドシュワルツ

「少なくとも小さなページファイルを保持する」というのは、Windowsがどのように使用するのか明確ではないため、少し奇妙に思えます。たとえば、より多くのスペースを提供するより大きなページファイルよりもさらにそれをスラッシングするかもしれません-私は推測していますが、これに関する信頼できるソースがない限り、小さなページファイルのアドバイスはおそらく有害であり、代わりに標準的な実践をお勧めします。
マフ

6

64ビット版のWindowsかどうかは言及しませんでしたが、そうです。

ページファイルは、BSoD(死のブルースクリーン)の場合にメモリダンプを生成するなど、多くの機能を提供します。

ページファイルがない場合、十分なメモリがない場合、Windowsはディスクにページアウトできません。8 GBではその制限に達しないと思うかもしれません。しかし、時間の経過とともにメモリをリークする不良プログラムがある場合があります。

ページファイルがなければ、休止状態/スタンバイ状態にできないと思います(ただし、まだ試していません)。

Windows 7/2008 / Vistaでは、ページファイルの使用は変更されません。

Mark Russinovich(Microsoft Fellow)から、Windowsはページファイルがないと(ページRAMが十分にある場合でも)遅くなる可能性があるという説明がありました。しかし、根本的な原因を見つけることはできません。

ディスク容量が不足していますか?BSoDの場合にカーネルダンプを保持できるように、最低1 GBを保持します。


どういう意味ですか?blogs.technet.com/markrussinovich/archive/2008/11/17/… その場合、彼のアドバイスは不十分です。彼は、ページファイルが他のアプリにより多くのRAMを与えるため、パフォーマンスが向上すると言います。確かに、あなたはあまりラムを持っていない場合。ただし、十分な容量がある場合は、ページファイルの速度が向上することはありません。
解熱2009年

それはSalomonとのsysinternalビデオでした。カーネルページプールと何か関係がありました
Mathieu Chateau

わからないときは「答え」を投稿できません。4GBのRAMを搭載したWindows Vista 32ビットラップトップを使用しており、常にスタンバイ状態にします。少なくとも、あなたが実際に答えを知っている質問への答えを提供することに自分自身を制限できますか?
PP。

PPが言おうとしたこと:休止状態プロセスはスワップファイルとは別のファイルを使用するため、この場合はこれは問題になりません。
マフ

Pyrolistical、おそらくこれを見るには遅すぎるかもしれませんが、あなたの声明を変えて、質問としてそれを言います:ページファイルは何かを遅くしますか?それに対する良い答えはあなたの理論を証明するでしょう。
quux

5

ページファイル(x86ラップトップで8 GB)を無効にし、2500 MBの空き容量でも2つの問題がありました。

  1. WCFサービスをアクティブにしようとするASP.NETエラー:空きメモリ(399,556,608バイト)が合計メモリの5%未満であるため、メモリゲートチェックに失敗しました。その結果、サービスは着信要求に対して使用できなくなります。これを解決するには、マシンの負荷を減らすか、serviceHostingEnvironment構成要素のminFreeMemoryPercentageToActivateServiceの値を調整します。

    3.7 GBが8 GBの5%に満たないことは、私には決してわかりません。

  2. 取得情報の損失を防ぐために、閉じるプログラムダイアログ:私のRAMの75%が使用されている場合、私はプログラムを終了するために私に言って、ダイアログボックスを取得します。あなたは、レジストリの変更でこれを無効にすることができます(または、おそらく「診断ポリシーサービス」を無効にして)。

結局、私は再びそれを再びオンにすることに決めました。単純でシンプルなWindowsは、ページファイルなしで使用するようには設計されていません。これは、ページングなしで実行するように最適化されています。メモリの75%以上を使用することを計画していて、レジストリを台無しにしたくない場合-それはあなたのためではないかもしれません。


1
ASP.NETエラーはおそらく32ビットの問題であると思いますが、指定した数値が正しい場合(399556608 = 399,556,608)、エラーは正しいです。最大400MBは8GBの約5%です。
フェンスポスト

@fencepost良いキャッチ-何らかの理由でそれをkbとして読んだに違いありません。奇妙な
サイモン

5

サーバーまたはワークステーションがページファイルを「必要とする」かどうかを判断できる唯一の人は、パフォーマンスモニターまたは最近呼ばれているものを注意深く使用しあなただけです。実行しているアプリケーション、使用しているアプリケーション、最高のアプリケーション潜在的に見られる可能性メモリ使用量はどれくらいですか?

小型のハードディスクでわずかなお金を節約するために、おそらく安定性を損なう価値はありますか?

非常に大きなパッチ、たとえばサービスパックをダウンロードするとどうなりますか。インストーラーサービスが、パッチを展開するために考えていたよりも多くのメモリが必要であると判断した場合は、どうなりますか?ウイルススキャナーが(非常に)この非常に大きなパックをスキャンすることを決定した場合、このパッチファイルを解凍してスキャンするときにどのような種類のメモリ使用が必要になりますか?殺人メモリ使用数字。

あなたに言えることは、あなたのページファイルを削除することは、助けるよりも傷つく可能性がはるかに高いということです。私はあなたがそれを持っていない理由を見ることができません-私はその1つで間違っているいくつかの専門的なケースがあるかもしれないと確信していますが、それは他の領域全体です。


2

使用可能な合計メモリは、ページファイル+実際のメモリです。

重要な質問は、すべてのアプリの予想総メモリ使用量とオペレーティングシステム使用量が8 GBに近づくかどうかです。平均メモリ使用量が2 GBで、最大メモリ使用量が4 GBのみの場合、ページファイルを作成しても意味がありません。最大メモリ使用量が6〜7 Gbに近いか、それより多い場合は、ページファイルを用意することをお勧めします。

PS:将来的に成長することを忘れないでください!


潜在的に利用可能な合計メモリを意味しませんか?ほとんどのページングシステムは、スナップショットページのコピーを保持します。
ジェキュー

2 GBの物理メモリしか使用していない場合でも、ページプールメモリが枯渇する可能性があることに注意してください。
タマラWijsman

2

多くの厳しく制限された人々がこの主題について意見を持っているようですが、実際にページファイルなしでコンピュータを実行しようとしたことはありません。

ほとんど試しなかったとしても、ほとんど試していません。Windowsがどのようにページファイルを処理するかについては、あまり知られていないようです。物理RAMが不足しても、「ちょうど」いっぱいになることはありません。ほとんどの皆さんは、「空き」RAMがファイルキャッシュとして使用されていることさえ知らなかったに違いありません。

ページファイルを無効にすると、パフォーマンスが大幅に向上します。システムはメモリ不足エラーの影響を受けやすくなります(そして、そのシナリオでアプリケーションがどのように応答するかを知っていますか?ほとんどの場合、OSはアプリケーションを終了するだけです)。スタンバイまたは長いアイドル期間からの起動時間は、はるかに速くなります。

物理的なRAMがなくなったときにページファイルのみが使用される(そしてすべてのファイルバッファが破棄された)オプションを設定することをMicrosoftが実際に許可した場合、ページファイルを無効にすることで得られるものはほとんどないと思います。


ページファイルを無効にするとパフォーマンスが低下しますが、メモリ負荷を導入してもパフォーマンスが向上することはありません。あなたがメモリ不足しているだけでページファイルの使用方法は、あなたが望むものは確かではありません...
タマラWijsman

-3

これは解毒ですが、Windows Server 2003ターミナルサーバーを約20人のユーザーに対して実行し、10〜15人が同時にログオンし、8 GBのRAMを搭載しています。ページファイルを使用して実行することはなく、サーバーは以前よりも高速に実行されます。これは明らかにすべての解決策ではありませんが、2年前からこのように実行しており、私が認識している問題はありませんでした。


1
問題はありますが、気づいていません。メモリ負荷の増加が同時リクエストの速度を低下させる可能性があることを考慮してください。ページファイルを有効にすると、このような瞬間になり、よりきびきび...
タマラWijsman
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.