回答:
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に投票する義務があるので、そこに着くためにリンクを使用してください!
他の回答からわかるように、ページファイルを無効にしたのは私だけであり、決して後悔していません。すばらしいです :-)
自宅でも職場でも、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を問題なくインストールしたことを追加したいだけです。
ページファイルの調整を行う前に、システムがメモリをどのように使用しているかを理解するために、何らかの測定を行うことができます。または(あなたはまだ調整をしたい場合)、前と後の調整は言いました。
Perfmonはこのためのツールです。タスクマネージャではありません。キーカウンターはMemory-Pages Input / secです。これにより、プロセスを続行する前にディスクからの読み取りが必要なハードページフォールトが具体的にグラフ化されます。ソフトページフォールト(既定のページフォールト/秒カウンターでグラフ化されるアイテムの大部分です。このカウンターを無視することをお勧めします!)は、実際には問題ではありません。通常、RAMから読み取られるアイテムを表示するだけです。
Perfmonグラフhttp://g.imagehost.org/0383/perfmon-paging.png
上記は、メモリに関する心配のないシステムの例です。ごくまれに、ハードフォールトのスパイクがあります-ハードディスクは常にRAMよりも大きいため、これらは回避できません。しかし、グラフはゼロでほぼ平坦です。そのため、OSがバッキングストアからページインすることはほとんどありません。
あなたが見ている場合はメモリ-ページ入力/秒のこの1よりもはるかにspikierでグラフを、右の応答のいずれか低いメモリの使用率(以下のプログラムを実行)またはRAMを追加することです。ページファイルの設定を変更しても、システムが実際よりも多くのメモリを要求しているという事実は変わりません。
監視するのに便利な追加のカウンターは、PhysicalDisk-Avgです。キューの長さ(すべてのインスタンス)。これは、変更がディスク使用量自体にどの程度影響するかを示します。正常に動作するシステムでは、このカウンターがスピンドルごとに 4以下で平均化されます。
何年も問題なく、ページファイルなしで8 GB Vista x64ボックスを実行しました。
本当に記憶を使ったときに問題が発生しました!
3週間前、私はPhotoshopで非常に大きな画像ファイル(約2 GB)の編集を開始しました。1回の編集セッションですべての記憶が枯渇しました。問題:Photoshopがファイルを保存するためにより多くのメモリを必要とするため、作業を保存できませんでした!
そして、それはすべてのメモリを食い尽くしているPhotoshopそのものだったので、プログラムを閉じることでメモリを解放することさえできませんでした(まあ、私はしましたが、助けにはなりませんでした)。
作業を破棄し、ページファイルを有効にして、すべての作業をやり直すだけでした。これにより多くの作業が失われ、ページファイルを無効にすることはお勧めできません。
はい、ほとんどの場合うまく機能します。しかし、それが壊れた瞬間に痛みを感じるかもしれません。
ここでの答えはトピックを非常によくカバーしていましたが、私はまだこれを読むことをお勧めします:
http://blogs.technet.com/markrussinovich/archive/2008/11/17/3155406.aspx
彼はほとんど最後にPFサイズについて話します。
ページングファイルがないとパフォーマンスが向上すると感じる人もいますが、一般に、ページングファイルがあると、Windowsは変更リスト(アクティブにアクセスされていないがディスクに保存されていないページを表す)にページを書き込むことができますファイルをページングして、そのメモリをより有用な目的(プロセスまたはファイルキャッシュ)に使用できるようにします。そのため、ページングファイルを使用せずにパフォーマンスが向上するワークロードもありますが、一般的には、システムで使用可能なメモリが増えることを意味します(Windowsは、ページングファイルのサイズが大きくないとカーネルクラッシュダンプを書き込めないことに注意してください)それらを保持するのに十分な)。
私はマークの記事が本当に好きです。
私が考えることができる最良の答えは、通常の負荷では8 GBを使い切ることはできないが、トラブルに遭遇するのは予期しない負荷であるということです。
ページファイルを使用すると、システムはページへのヒットを開始すると少なくとも遅くなります。しかし、ページファイルを削除すると、(私の知る限り)死んでしまいます。
また、8 GBは今では多くのように見えますが、数年後には、多くのソフトウェアの最小メモリ量と見なされる可能性があります。
いずれにせよ-少なくとも小さなページファイルを保持することをお勧めします。しかし、私がオフベースの場合は他の人が私を修正してください。
64ビット版のWindowsかどうかは言及しませんでしたが、そうです。
ページファイルは、BSoD(死のブルースクリーン)の場合にメモリダンプを生成するなど、多くの機能を提供します。
ページファイルがない場合、十分なメモリがない場合、Windowsはディスクにページアウトできません。8 GBではその制限に達しないと思うかもしれません。しかし、時間の経過とともにメモリをリークする不良プログラムがある場合があります。
ページファイルがなければ、休止状態/スタンバイ状態にできないと思います(ただし、まだ試していません)。
Windows 7/2008 / Vistaでは、ページファイルの使用は変更されません。
Mark Russinovich(Microsoft Fellow)から、Windowsはページファイルがないと(ページRAMが十分にある場合でも)遅くなる可能性があるという説明がありました。しかし、根本的な原因を見つけることはできません。
ディスク容量が不足していますか?BSoDの場合にカーネルダンプを保持できるように、最低1 GBを保持します。
ページファイル(x86ラップトップで8 GB)を無効にし、2500 MBの空き容量でも2つの問題がありました。
WCFサービスをアクティブにしようとするASP.NETエラー:空きメモリ(399,556,608バイト)が合計メモリの5%未満であるため、メモリゲートチェックに失敗しました。その結果、サービスは着信要求に対して使用できなくなります。これを解決するには、マシンの負荷を減らすか、serviceHostingEnvironment構成要素のminFreeMemoryPercentageToActivateServiceの値を調整します。
3.7 GBが8 GBの5%に満たないことは、私には決してわかりません。
取得情報の損失を防ぐために、閉じるプログラムダイアログ:私のRAMの75%が使用されている場合、私はプログラムを終了するために私に言って、ダイアログボックスを取得します。あなたは、レジストリの変更でこれを無効にすることができます(または、おそらく「診断ポリシーサービス」を無効にして)。
結局、私は再びそれを再びオンにすることに決めました。単純でシンプルなWindowsは、ページファイルなしで使用するようには設計されていません。これは、ページングなしで実行するように最適化されています。メモリの75%以上を使用することを計画していて、レジストリを台無しにしたくない場合-それはあなたのためではないかもしれません。
サーバーまたはワークステーションがページファイルを「必要とする」かどうかを判断できる唯一の人は、パフォーマンスモニターまたは最近呼ばれているものを注意深く使用して、あなただけです。実行しているアプリケーション、使用しているアプリケーション、最高のアプリケーション潜在的に見られる可能性メモリ使用量はどれくらいですか?
小型のハードディスクでわずかなお金を節約するために、おそらく安定性を損なう価値はありますか?
非常に大きなパッチ、たとえばサービスパックをダウンロードするとどうなりますか。インストーラーサービスが、パッチを展開するために考えていたよりも多くのメモリが必要であると判断した場合は、どうなりますか?ウイルススキャナーが(非常に)この非常に大きなパックをスキャンすることを決定した場合、このパッチファイルを解凍してスキャンするときにどのような種類のメモリ使用が必要になりますか?殺人メモリ使用数字。
私があなたに言えることは、あなたのページファイルを削除することは、助けるよりも傷つく可能性がはるかに高いということです。私はあなたがそれを持っていない理由を見ることができません-私はその1つで間違っているいくつかの専門的なケースがあるかもしれないと確信していますが、それは他の領域全体です。
使用可能な合計メモリは、ページファイル+実際のメモリです。
重要な質問は、すべてのアプリの予想総メモリ使用量とオペレーティングシステム使用量が8 GBに近づくかどうかです。平均メモリ使用量が2 GBで、最大メモリ使用量が4 GBのみの場合、ページファイルを作成しても意味がありません。最大メモリ使用量が6〜7 Gbに近いか、それより多い場合は、ページファイルを用意することをお勧めします。
PS:将来的に成長することを忘れないでください!
多くの厳しく制限された人々がこの主題について意見を持っているようですが、実際にページファイルなしでコンピュータを実行しようとしたことはありません。
ほとんど試しなかったとしても、ほとんど試していません。Windowsがどのようにページファイルを処理するかについては、あまり知られていないようです。物理RAMが不足しても、「ちょうど」いっぱいになることはありません。ほとんどの皆さんは、「空き」RAMがファイルキャッシュとして使用されていることさえ知らなかったに違いありません。
ページファイルを無効にすると、パフォーマンスが大幅に向上します。システムはメモリ不足エラーの影響を受けやすくなります(そして、そのシナリオでアプリケーションがどのように応答するかを知っていますか?ほとんどの場合、OSはアプリケーションを終了するだけです)。スタンバイまたは長いアイドル期間からの起動時間は、はるかに速くなります。
物理的なRAMがなくなったときにページファイルのみが使用される(そしてすべてのファイルバッファが破棄された)オプションを設定することをMicrosoftが実際に許可した場合、ページファイルを無効にすることで得られるものはほとんどないと思います。
これは解毒ですが、Windows Server 2003ターミナルサーバーを約20人のユーザーに対して実行し、10〜15人が同時にログオンし、8 GBのRAMを搭載しています。ページファイルを使用して実行することはなく、サーバーは以前よりも高速に実行されます。これは明らかにすべての解決策ではありませんが、2年前からこのように実行しており、私が認識している問題はありませんでした。