web-dev-qa-db-ja.com

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

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

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

それを削除すると、パフォーマンスが向上または低下しますか?

これがサーバーまたはデスクトップの場合、違いはありますか?

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

213
Jason

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

多くの人は、Windowsがデータをオンデマンドでページファイルにプッシュすると想定しているようです。 EG:何かが大量のメモリを必要としており、RAMが足りないため、WindowsはRAMからこの時点でディスクにデータを書き込みますRAM=新しい要求のために解放できるように、土壇場。

これは誤りです。内部では、さらに多くのことが行われています。一般的に言って、Windowsはバッキングストアを維持します。つまり、ディスク上のどこかにあるメモリにあるすべてのものを表示したいと考えています。これで、何かが発生し、大量のメモリを要求すると、WindowsはRAMを非常に迅速に消去できます。これは、そのデータがディスク上にすでにであり、ページングする準備ができているためです。 RAM呼び出された場合。ページファイルにあるものの多くはRAM内の also であると言える;データは new メモリ割り当て要求を高速化するために、先制的にページファイルに配置されます。

関係する特定のメカニズムを説明すると、多くのページが必要になります( Windows Internals の第7章を参照してください。 新しい版 は間もなく利用可能になることに注意してください)。注意します。まず、RAMに含まれるものの多くは、本質的にすでにディスク上にあります-たとえば、実行可能ファイルまたはDLLからフェッチされたプログラムコード。これは、ページファイルに書き込む必要があります。Windowsは、ビットが最初にフェッチされた場所を簡単に追跡できます。次に、Windowsは、RAM内のどのデータが最も頻繁に使用されているかを追跡するので、 RAMアクセスされずに最も長く経過したデータ。

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

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

いくつかの参照:

dmoと記されています 最近の Eric Lippertの投稿 これは、仮想メモリの理解に役立ちます(ただし、質問にはあまり関係しません)。他の回答にスクロールダウンしない人もいるのではないかと思うので、ここに配置します。ただし、価値があると思われる場合は、dmo投票する必要があるため、 リンク を使用してください。 =そこに着く!

302
quux

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

80
dmo

他の回答からわかるように、ページファイルを無効にし、それを後悔しなかったのは私だけです。すばらしい:-)

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

私も問題なくハイブリッドスリープ(スリープハイバネーション)を毎日使用しています。

Windowsで実験を始めたXP 2 GBのRAMで、実際の違いがわかりました。クラシックな例は、コントロールパネルのアイコンが表示されなくなったときでした。それ自体は1つずつですが、一度にすべてです。また、Firefox/Thunderbirdの起動時間は劇的に増加しました。何かをクリックするとすぐにすべてが機能し始めました。残念ながら、2 GBは小さすぎてアプリケーションで使用できません(Visual Studio 2008、Virtual PCおよびSQL Server)。 )、私はそれを再び有効にしました。

しかし、今は8 GBなので、戻ってページファイルを有効にしたくありません。

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

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

簡単に言うと、メモリ使用量を知っている場合-安全に無効にできます。

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

48
SeeR

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

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

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

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

Memory-Pages Input/secグラフがこのグラフよりもはるかに速い場合は、メモリ使用率を下げる(プログラムの実行を減らす)か、RAMを追加するのが正しい応答です。ページファイル設定を変更しても、システムから実際に必要とされるよりも多くのメモリが要求されているという事実は変わりません。

監視するのに便利な追加のカウンターはPhysicalDisk-Avg。キューの長さ(すべてのインスタンス)。これにより、変更がディスク使用自体に与える影響がわかります。正常に動作するシステムでは、このカウンタの平均がスピンドルあたり4以下で表示されます

35
quux

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

私が実際に私の記憶を使用したときに問題が発生しました!

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

そして、それはすべてのメモリを消費していたPhotoshop自体だったので、プログラムを閉じることによってメモリを解放することさえできませんでした(まあ、私はそうしましたが、あまりにも少なすぎて役に立ちませんでした)。

私ができることは、作業をスクラップしてページファイルを有効にし、すべての作業をやり直すことだけでした。これが原因で多くの作業が失われ、ページファイルを無効にすることを勧めることはできません。

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

34
Sam

ここでの回答はこのトピックをかなりカバーしていましたが、私はこれをお勧めします:

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

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

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

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

19
Radim Cernej

私が考えることができる最良の答えは、通常の負荷では8 GBを使い切ることはできないということですが、問題が発生するのは予期しない負荷です。

ページファイルを使用すると、ページにアクセスし始めると、システムは少なくとも低速で実行されます。しかし、ページファイルを削除すると、そのファイルは(私が知っている限り)死ぬだけです。

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

どちらの方法でも、少なくとも小さなページファイルを保持することをお勧めします。しかし、私がベースを外れている場合、他の人が私を訂正してください。

13
Dave Drager

64ビット版のWindowsかどうかは触れていませんが、そうだと思います。

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

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

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

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

Mark Russinovich(Microsoft Fellow)の説明の1つで、Windowsの方がページファイルを使用するよりも(RAMが十分であっても)Windowsの方が遅い場合があることを説明しました。しかし、根本的な原因を見つけることはできません。

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

6
Mathieu Chateau

サーバーまたはワークステーションがページファイルを "必要としている"かどうかを知ることができるのは、パフォーマンスモニターや最近の呼ばれるものを慎重に使用してyoだけです。実行しているアプリケーション、アプリケーションの使用状況、およびメモリ使用量の最大値の可能性はどれか。

小さなハードディスクでわずかな金額を節約するために、安定性は妥協する価値がありますか?

サービスパックなど、非常に大きなパッチをダウンロードするとどうなりますか。インストーラーサービスが、パッチを解凍するために予想したよりも多くのメモリが必要であると判断した場合、どうしますか?ウイルススキャナーがこの非常に大きなパックをスキャンすることを決定した場合、このパッチファイルを解凍してスキャンするときに、どのようなメモリ使用が必要になります。パッチアーカイブファイルにアーカイブ自体が含まれていないことを願っています。 murderメモリ使用量。

私ができることは、ページファイルを削除すると、支援するよりも害を及ぼす可能性がはるかに高いことを示しています。あなたがそれを持たない理由がわかりません-私はそれについて間違っているいくつかの専門家のケースがあるかもしれないと確信していますが、それはまったく別の領域です。

5
Rob Moir

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

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

    3.7 GBが8 GBの5%未満になるなんて、私には決してわかりません!!

  2. 取得情報の損失を防ぐためにプログラムを閉じるダイアログ:75%の私のRAM=を使用すると、次のようなダイアログボックスが表示されますプログラムを閉じる レジストリの変更でこれを無効にできます (または、「診断ポリシーサービス」を無効にすることでたぶん)。

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

5
Simon

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

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

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

マイクロソフトが実際にオプションを設定することを許可した場合、物理的なRAM(およびすべてのファイルバッファーが破棄された)ときにページファイルのみが使用されます)場合、無効にすることによるメリットはほとんどないと思いますページファイル。

2
PP.

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

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

PS:将来の成長を見込んでください!

2
John Lim