Windowsページファイルを無効にする問題については、すでにかなり議論されています。たとえば、 here および here および here です。 「十分なRAMがあってもページファイルを無効にしないでください」という回答を支持する人々がいますが、これについて具体的で検証可能な理由が示されていません。助言。私が見る限り、ifページファイルから読み取る必要はありません(十分なRAMがあるため)。Windowsが先制的に有効になっていると、パフォーマンスが低下するだけです。それに書き込みます。せいぜい、パフォーマンスは同じです。読む必要のないデータを書き込むことで、どうすれば改善できるかわかりません。
だから私の質問は:
私が行うすべてのことに対して十分な物理RAMがあると仮定すると、ページファイルを無効にしてはいけない理由はありますか?
WindowsのバージョンがWindows XP x64 SP2またはWindows Server 2003 x64 SP2(同じもの)であるとしましょう。 Windows Server 2008 x64とは異なる場合は、その答えも聞きたいです。私は、意見だけでなく、優れた情報源から具体的で客観的な理由を探しています。 「ページファイルを使用した場合と使用しない場合のベンチマークは次のとおりです。十分なRAMがあっても、ページファイルを使用すると結果が向上します」または「このMS KB記事によると、ページファイルを無効にすると問題Xが発生します」のようなもの。
これまでのところ、私が言及した唯一の理由は次のとおりです。
これはマイクロ最適化です。重要なのは、通常の操作に似たものなら何でもtoする理由がないということです。使用パターンが変わると、簡単に傷つく可能性があります。
ローカルの書き込み可能なディスクがない場合など、特別な場合に意味があります。
これから link:
注:マイクロソフトでは、ページングファイルを無効にしたり削除したりしないことを強くお勧めします。
Windows XPでページングファイルの使用を無効にするには、少なくとも768MBのRAMが必要です。
これが Jeff Atwoodへのリンク の見解です。
すべてをRAMに収めることができたとしても、ページファイルを保持する理由はたくさんあります。
SFに関する回答には125の賛成票があり、多くの信頼できる記事にリンクしています。見てみな:
Windows XP 4GBのSP3 Professional 32ビットラップトップRAM(Windowsが公式に認識しているのは3 GBのみ))を1年以上実行しています今はページファイルがありません。私のサークルの人々も、私がやるべきではないことを私に怖がらせようとしていました。
私は非常にメモリを集中的に使用するアプリケーションを使用しています-任意の時点で、RAMで100%を実行するように構成された少なくとも2つの仮想マシン(vmware)があり、少なくとも1つのVisual Studioのインスタンス(多くのアドオンのインストール)、SQL Server、および電子メール、IM、IEなどのいくつかの「小さな」アプリ.
これとは別に、永久的な256 MBのRAMディスクも持っています。時々、他のアプリケーションが実行されている間、Adobe Photoshopを使用します。また、Quake3、Neverwinter Nights、Oblivionなど、いくつかのゲームもプレイしています。
そして、私は何の問題もありません。
BlueNovemberへのメモ:私たちの友人は客観的な理由を非常に礼儀正しく尋ねました。したがって、「私は疑う...」などの文は不当です。投稿する前に確認してください!ハイバネーションはページングとは関係ありません。 hiberfil.sysと呼ばれる別のファイルを使用し、ページファイルなしで休止状態にすることができます。
PS:申し訳ありませんが、このセットアップが実際どのくらい高速かを実際にベンチマークできるように、「通常の」構成に戻ることを拒否しますが、ハードディスクのアクティビティをそれほど少なく確認する必要があるだけで、ちらつきは非常に快適です。 HDD LEDが頻繁に点滅しない場合は、少なくともコンピュータの「速度が速くなる」ので、それだけのためにページファイルを無効にします。
無効にしないにする唯一の理由は、ページファイルに依存し、最低2 MBのページファイルが必要なため、パフォーマンスモニター(PerfMon)を使用している場合です。そうしないと、次のオブジェクトのカウンターが失われます。キャッシュ、メモリ、オブジェクト、プロセッサ、システム。
私が見つけた最大の理由は、ページファイルにより、Windowsがディスクキャッシュに対してより多くの物理的なRAMを使用できるようになることです。これは、めったに使用されないメモリページよりも適切に使用できる場合があります。それに関する素晴らしい記事、 Windowsの限界に挑む:仮想メモリ は次のように述べています。
ページングファイルがないとパフォーマンスが向上すると感じる人もいますが、一般的に、ページングファイルがあると、Windowsは変更されたリスト(アクティブにアクセスされていないがディスクに保存されていないページ)にページを書き込むことができます。ファイルをページングし、そのメモリをより有用な目的(プロセスまたはファイルキャッシュ)に利用できるようにします。したがって、ページングファイルがなくてもパフォーマンスが向上するワークロードがいくつかある可能性がありますが、一般的には、システムで使用できるメモリが増えることになります(Windowsはサイズの大きいページングファイルがないとカーネルクラッシュダンプを書き込めないことに注意してください)それらを保持するのに十分です)。
ページファイルがない場合、BSODの場合、Windowsはミニダンプを書き込むことができないと思います。つまり、適切なツールを使用して問題を分析することはできません。
これは、BSODが発生していない場合は問題にならず、ページファイルを十分に迅速に再作成できますが、準備しておく必要はありませんか?
Windowsを実行していますXP 4GB(3.5GB使用可能)のRAMを使用しています。大量のメモリを必要とするVisual Studio 2008を実行する必要があります。多くの場合、それぞれ3〜4つのインスタンスを開いて500MB以上のメモリ。
すべてのVisual Studioインスタンスをすばやく閉じる必要があるときはいつでも、Windowsがインスタンスを閉じるのに永遠にかかるので、私はこれに本当にイライラしました。 3分以上かかりました。利用可能なメモリが十分にある場合でも、Visual StudioのインスタンスがRAMからページファイルにページングされたことが原因であることがわかりました。アプリケーションを閉じると、ページングされたすべての基本的に、インスタンスをシャットダウンする前に、2GBのデータをディスクからメモリにコピーします。
ページングを無効にした後、複数のVisual Studioインスタンスをシャットダウンすると、パフォーマンスが大幅に向上することに気付きました。数秒間CPUの100%を消費し、その後消えます。 Windowsのシャットダウンが、数分ではなく1分以内に可能になりました。
ただし、起動時にデータをディスクから読み取る必要があるため、アプリケーションの起動時にパフォーマンスが向上することに気付きませんでした。また、ページングが無効になっていると、全体的にスナップが速くなるように感じます。
また、メモリ不足が原因でプログラムがクラッシュするのは1年に数回だけです。通常、開いているプログラムが多すぎる場合、またはプログラムが異常になり、狂ったようにメモリの割り当てを開始した場合。
要約すると、私はページングの無効化に非常に満足しています。 Windowsのメモリ管理はかなりひどいです。メモリ設定のいじりに慣れていて、起こりうる問題を認識している人には、これを行うことをお勧めします。
世論に反して、ページファイルは単に安価なだけでなく、物理メモリに代わるものではありません。それはあなたが持っているRAMの最適な使用を可能にするように設計されました。
RAMの4GBを使用しても、メモリにすべてを保持するのに十分な量はおそらくないでしょう。タスクマネージャーでは何もこれを明らかにしません。これを知って、Windowsデザイナーは実行可能コードのみが導入されるシステムを作成しました必要に応じてメモリを保存し、可能な限り長期間保持します。システムがこのように使用したメモリをより適切に使用できると判断した場合は、メモリを再割り当てします。このシステムは、1993年にリリースされたNT3.1以降、Microsoftによって使用されています。 1960年代以降の大規模システムでの使用。
このシステムは、ほとんどの形式の実行可能コードに適しています。ただし、変更されたデータは、使用されているメモリを再割り当てする前に、ページファイルのどこかに書き込む必要があります。ページファイルは通常、コードだけを格納するために使用されません。コードとデータの両方をページアウトできるため、必要なときにページアウトする必要があるシステムに柔軟性が与えられます。ページファイルを無効にすると、コードの保存に使用されるメモリのみを再割り当てできます。すべての変更されたデータは、長期間アクセスされておらず、再び必要とされない場合でも、RAMに永続的に保持する必要があります。ただし、コードのページングは以前と同様に続行されます。ページファイルが不足している、またはページファイルが小さすぎると、システムのバランスが崩れ、Windowsが次善の方法でページングを行うようになります。これは通常、パフォーマンスを低下させます。
言及されていない答えの1つは、Windowsがページファイルを使用してクラッシュダンプを格納することです。コンピューターをブルースクリーンする機能は、ページファイルを含むディスク上のセクターに直接クラッシュダンプを書き込みます(現時点では、Windowsが信頼できないファイルシステムドライバーをバイパスします)。
ページファイルがないと、クラッシュダンプ情報を取得できません。また、ページファイルを使用しなくても害はありません。そのため、非常に限られたシナリオセットの外では、ページファイルをオフにする理由はありません。
RAMが最大に達した場合、メモリを要求した1つ以上のプログラムが突然クラッシュする可能性があります。
そのリスクは、得られるパフォーマンスの向上を上回ります。
私の提案は、ページファイルを保持することですが、システムディスク上で手動で128MBなどの小さいサイズに修正します。
その理由は実用的なものです。Windowsは実際にはスワップファイルが存在することを期待しており、ほとんどの場合、一時的に自動管理されるファイルが見つからない場合は作成するため、無効にすると便利ではありません。
また、BSODing、パフォーマンスカウンター、サスペンド/レジューム/ハイバネートなどの一部の操作では、静かに失敗または誤動作し、システムの安定性が損なわれます。これらすべては私の経験に基づいており、これらはすべて小さめのページファイルでなくなりました。
スワップファイルは実行の最初の数分で埋められる可能性が高く、ほとんどの場合二度と変更されないことに注意してください。そのため、通常のディスクアクセスペナルティスワップファイルが発生することはありません。セッションで間もなく「メモリ不足です」というアラートを受け取る可能性がありますが、無視しても問題ありません(そうです、スワップがいっぱいなので、どうしますか?)
(私もスーパーフェッチを非常に嫌い、むしろキャッシュ効果のためにメモリを解放しておく)
あなたの質問が:
私がするすべてのために十分な物理的なRAM=があると仮定し、
私は、ファイルアクセスでローカルに集中しない、小さな固定のタスクセットを実行するだけです
そして、それらすべてのタスクが、Windowsシステムプロセスと共に、実行可能な最大のファイル/データと同時に実行されている場合、インストールされるよりも少ないRAM
さらに、環境には、ごくまれに新しいローカルファイルや予期しないローカルファイルが含まれ、それらにアクセスする速度はそれほど重要ではありません。
ページファイルを無効にしてはいけない理由はありますか?
あなたがそう言ったなら、それで大丈夫でしょう。
組み込み環境は、おそらく、レジのOSインストールのように、これが適用される可能性が最も高い場所です。
単純な答えは、メモリが不足するとウィンドウがひどくなるということです。
物事は苦痛に遅くなります。
多くのソフトウェアパッケージには、メモリリークがあり、使用可能なRAMが徐々に消費されます。
プラスウィンドウは、ハードディスクのキャッシュとしてRAMの一部を使用します。
あなたが本当に持っているのでない限りもっと RAMあなたがそれを必要とすることは、結局問題になるでしょう。
SuperFetchが残りのメモリをキャッシュにロードすることを考慮してください、ページファイルを無効にすべきでない理由が明らかになります。シリアルタスク(マルチタスクは悪いため)とキャッシュされたアプリケーションの起動は非常に便利です。そのため、ページングを犠牲にしてSuperFetchを機能させるのは素晴らしいことです。