web-dev-qa-db-ja.com

Windowsページファイルを無効にすることの何が問題になっていますか?

alwaysにはページファイルが必要であり、パフォーマンスが向上すると言われていますが、私のWindows 7はページファイルなしで実行するように設定されています。私は人々がこれを言う理由を単に理解していません-私は6 GiB RAMを持っています、そして私が来た唯一の時間closeが不足するまでRAMは、Chromiumをコンパイルしていたときに、一時的にページファイルを有効にしていました。

通常の状況で速度を上げるために、本当にページファイル*が必要ですか?どうして?

*クラッシュダンプにはページファイルが必要です。ただし、クラッシュダンプを使用することはないので、問題ありません。

15
user541686

ページファイルがパフォーマンスを向上させることは決してありませんが、必ずしも適切なメモリ管理によってパフォーマンスが低下するわけではありません。ただし、ページファイルなしで実行すると、使用できないメモリを要求するアプリケーションに関して、システムの不安定さが増す傾向があります。

OSのメモリ管理が特に悪い場合を除き、メモリが6GiBのページファイルはほとんど使用されません。とはいえ、まったく使用されないというわけではありません。 IIRC MS Windowsは、利用可能なメモリが十分にある場合でも、ページングに関しては少し奇妙です。 (なぜ、私は決して知りません。)

ただし、ページファイルを使用していないときに何が起こるかは、それを有効にするのに十分な理由かもしれません:ハードクラッシュ。ほとんどのアプリは、要求するメモリを受け取ることを期待しています。そうしないと、クラッシュします。 (ああ、しかし、数千bytesに住んでいなければならない古き良き時代は過ぎ去りました...そして、あまりに多くの開発者にとって、メモリ管理を扱う慣習があります。)

アプリが正しく構築されていれば、うまく機能しません。 (運が良ければ、それはまったく失敗しないでしょう。しかし、それを当てにしないでください。)ほとんどのアプリでは、あなたの手に素晴らしい失敗があります。さらに、その制限に近づいているアプリが多いほど、システム全体の不安定性が発生する可能性が高くなります。

私自身の経験からの事例。 Windows XP、4GiB、ページファイルなし。パフォーマンスは素晴らしかった。 4GiBの限界に近づくまで。その後、問題が発生しました:アプリがクラッシュし、メニュー項目が部分的にしか表示されない(またはまったく表示されない)、ボタンが機能しないなど。ページファイルに切り替えたところ、パフォーマンスは低下しましたが、全体的な安定性は単純でした。より良くそしてより重要です。

今、あなたはおそらく6GiBをプッシュするアプリを使用していないか、アプリで作業していますが、あなたが近づくかもしれないいくつかの状況を考えることができます:ビデオ編集、写真編集、オーディオミキシング、制作など-基本的に、大量のデータを処理しているすべてのもの(操作またはストリーミング)。そのデータがメモリ機能を超えると、アプリが「偽装」される可能性が高くなります。

8
Kerri Shotts

この記事 Mark Russinovichが、ページファイルについて知りたいことをすべて伝えます。

「キャッシュ」がページファイルの機能に関して使用する適切な用語であるかどうかはわかりません。キャッシュは、データにすばやくアクセスできる一時的な保存場所です。オペレーティングシステムは、物理RAMの競合が多すぎると、ページファイルに障害を発生させます。したがって、RAMオーバーフローは、メモリ不足が原因でプログラムが激しくクラッシュするのを防ぐためのオーバーフローです。しかし、Windowsがアクセスされていないものをページファイルに入れようとしていると思います。 (そしてLinuxもこれを行うかもしれません)その意味でそれはキャッシュですが、実際にはその主要な機能ではありません。

とにかく、記事を読んでください。それはあなたにあなたのページファイルを何に設定するべきかについての良いガイドラインを与えます。 @Sandeep Bansalが言うように、実行するために「要件チェック」の一部として1つを必要とするゲームが時々あるかもしれません(しかし、私は知りません)。

編集:この例は、ページファイルの役割を理解するのに役立ちます。

512MBのRAMがあるとします。最小化されたブラウザー自体が250 MBのRAMを消費するなど、いくつかのプログラムを開いており、そのときに実行中のすべての合計RAM使用量は500MBです。

そこで、150 MBのRAMを割り当てたい別のプログラム(たとえば、ワードプロセッサ)を起動します。メモリ不足です。ただし、ページングシステムがある場合は、最小化されたブラウザーを含むメモリページをディスクにページアウトできます。したがって、新しいプログラムをロードできます。

ここで、少し後にブラウザに戻りたいとしましょう。まあ、ディスクに送信したものを「ページイン」する必要があります。十分な空きがある場合RAM=その時点で問題なくそれを行うことができます。ない場合は、まず他の何かをページアウトする必要があります。CPUを競合するプログラムがたくさんある場合そして一定のページングがあると、物事は遅くなり、「スラッシング」と呼ばれる状態になります。このすべてのページングのインとアウトはパフォーマンスの低下を引き起こしますが、プログラムが「ハード」クラッシュを回避します。メモリ不足エラーが発生しました。それがページングファイルの目的です。ページングが多すぎます。つまり、「スラッシング」は、プログラムがそれ以上取得できないので、あきらめるだけのプログラムと同じです。 RAMほとんどの場合。

これで、特定の瞬間に使用されない可能性があるものを予想するアルゴリズムが存在する場合、オペレーティングシステムは、それが実行できないものを「ページング」することができます。すぐに使用されると思います。したがって、これは、十分なRAMがある場合でも、存在するページファイルを使用してWindowsを考慮します。 RAMを可能な限り利用可能にしようとしています。WindowsはLinuxのようなもので、無料のRAMはディスクキャッシュとして機能するため、バランス調整が適切に行われるとこれはすべてOS設計の一部であり、何千人ものプログラマーから優れたオペレーティングシステムを得るのに10年かかる理由です。

したがって、実際にあなたの質問にも答えるには、ページファイルを無効にすることの唯一の問題です。私が提供した例に戻ると、ページファイルがないと、単にブラウザーを起動できません。または、OOMエラーを予測するように防御的にプログラミングされていない不適切に記述されたプログラムは、本当に奇妙に動作する可能性があります。

7
LawrenceC

ページファイルは、クラッシュダンプを保存するためだけのものではなく、本質的にそのために作成されたものではありません。

ページファイルが存在するため、RAMに保持する必要のないデータを保存できます。これは、メモリに存在する必要のないアイテムのキャッシュのようなもので、より多くのRAM他のもの。

6 GBのRAMがある場合はページファイルは必要ないかもしれませんが、特定のアイテムにはページファイルが必要な場合があります。いくつかのゲームではページファイルが必要であり、ページファイルがある場合にも便利です。

500MBのページファイルを作成しても、特定のプロセスで必要になった場合に問題を回避するだけであれば問題はありません。

2
Sandeep Bansal

最初のステップは、キャッシュとは何か、またはさまざまなキャッシュの用途を理解することです。
CPUには小さなOPキャッシュがあり、OPの結果、フラグの状態、計算されたアドレスを保存できます。デュアルコアでは、内部キャッシュは約1MBだと思います。これは非常に高速で、CPU内部からのみアクセスでき、オーバークロックされたCPUの熱による影響を最も受けます。

レベル2キャッシュは、CPUからメモリへのトランザクションの高速バッファーとして機能し、プリフェッチによって収集されたコードスレッドも保持します。デュアルコアでは、通常のインストールでは6 MBのlvl2キャッシュが必要になると思います。非常に高速ですが、内部キャッシュメモリは低速ですが、メモリコントローラーとCPUからのみアクセスでき、バス上の専用ラインに存在します。

ページファイルは実際にはキャッシュであり、メモリに存在する場合と存在しない場合があるデータを格納します。 O/Sはページングファイルをさまざまなタスクに使用できます。その1つは、まだディスクにコミットされていないデータファイルの現在の状態を保存することです。ページファイルが存在しない場合、この機能を内部的に提供するのはサードパーティのアプリケーションに任されています。このシナリオの問題は、ガベージコレクションに関しては多くのプログラムが適切に動作せず、偽の.tempファイルがディスクに残っていることです。これらの残骸はインストールマニフェストの一部ではなく、アンインストール手順を妨げたり、ディスクアクセス速度を低下させる可能性があります。

私の意見では、スワップファイルは通常持っているのが良いものです。実際、システムにRamが多く含まれていて、特定の1つのタスク専用であり、そのアプリケーションがこれらすべてを処理する場合、スワップファイルは必要ない場合があります。 1つの例としては、Windowsプラットフォームで実行されるアーケードビデオゲームがあります。これらは通常、存在するデバイスに必要なドライバーのみでインストールされ、ドライバーの競合の影響を受ける可能性はほとんどありません。ただし、ほとんどのアプリケーションは、発生する可能性のあるすべての潜在的な問題、特に他のサードパーティアプリケーションやドライバーの競合による影響を含む問題を処理しません。

ページファイルを追加する短期間にパフォーマンスの低から中程度の低下に気付くかもしれませんが、長期的なパフォーマンスは一貫したままであるはずです。最初はページファイルがない方が速く見えるかもしれませんが、時間の経過とともにパフォーマンスが大幅に低下します。

スティーブンマルム、MCP。

1
Steven Malm

個人的な経験

現在、8GBのラップトップRAMは、ページファイルの作成/使用を妨げる問題があります。私の人生は地獄です。常に「メモリ不足」のプロンプトが表示され、アプリがクラッシュします。3つのプログラムを使用するそれぞれ1〜1.5 GBを消費する(たとえば、Webブラウザー、特別なプラグインを備えたVisual Studioなど)は、薄い氷の上を歩いています。

別の引数

物理的なキャッシュからのデータの使用RAMキャッシュは非常に高速です。より「空き」のある物理的なRAMは、保持できるキャッシュがより大きくなります。より多くの休止データがOSは物理的なRAM=からページファイルに移動できます。物理的なRAMは、頻繁にアクセスされるデータのキャッシュのために解放されます。

場所を変更するときに場所データをロードするゲームをプレイするとします。また、ゲームに2GBを残すWebブラウザーも実行されています。これは、1つの場所で十分です。ページファイルがないと、場所を変更するたびに、データがHDDからゆっくり読み込まれます。ページファイルを使用すると、未使用のWebブラウザーデータがページファイルに送信され、貴重な物理的なRAMが複数の場所のデータの保存に使用されるため、場所の読み込みがはるかに高速になります。

0
Ark-kun