DisablePagingExecutiveレジストリの変更は実際に影響がありますか?


9

過去の多くのマシンで、さまざまなバージョンのWindows(2000、XP、Vistaなし)で、DisablePagingExecutiveを有効にしてパフォーマンスを向上させました。どちらの場合も、私はたくさんのメモリを持っていました、そして特に現在のケースではそうです。ただし、このレジストリの微調整を有効にして再起動した後、しばらくしてタスクマネージャーを確認しましたが、2GBの物理メモリが空いているにもかかわらず、ディスクにページングされたカーネルの巨大なチャンクがまだ表示されています。

誰かがこの調整をうまく使用したことがありますか?今まで?タスクマネージャー([パフォーマンス]タブ-> [カーネルメモリ]セクション)をチェックしたときに間違ったインジケーターが表示されているのかもしれませんが、特にWindowsが提供するメモリの量を考慮して、ディスクにページングできるすべてをページングしないようにしたいと思います。最近のデスクトップ。「極端なメモリプレッシャーがない限り、ページングをディスクに行わない」オプションのように見えますが、あるのでしょうか。

回答:


13

この機能に関して、インターネット上で非常に多くの混乱があります。この設定は、エグゼクティブと呼ばれるカーネルの一部にのみ影響を与え、次にページング可能な部分にのみ影響を与えます。カーネルには、この設定の影響をまったく受けない部分があります。

カーネルページングは​​、他のページングと同じように機能します。頻繁にアクセスされるコードとデータはRAMに保持され、残りはディスクに残ります-それが属している場所です。システムは、カーネルのより適切な使用法を見つけない限り、カーネルのどの部分もRAMから削除しません。マイクロソフトは、膨大な量の研究とテストをページングシステムに費やしました。

カーネルのコンテキストでは、「非ページ」とは、いかなる状況でもページアウトできないコードとデータを意味します。「ページング」とは、必要に応じてページアウトできるコードとデータを意味します。実際にどれだけページアウトされているかは、タスクマネージャからはわかりません。ページアウトされたコードの一部は、まだ必要がなかったため、最初からディスクから読み取られることはありませんでした。すべてのカーネルが頻繁にアクセスされるわけではありません。問題の設定によってページ番号と非ページ番号が影響を受けることを期待すべきではありません。

注:コードがページアウトされると、通常、コードはページファイルにコピーされません。元のファイルから単純に再ロードできるため、これは必要ありません。これは、kerenlだけでなく、ほとんどのコードに適用されます。

妥当な量のRAMがあれば、設定は本質的に何もしません。システムがページアウトしたくないデータをページアウトするのを防ぐだけです。


4

これを理解しているかどうかはわかりませんが、ページ違反は、Windowsが実行可能コードをロードするために使用するメカニズムです。したがって、たとえば、DLLは仮想メモリにマップされ、次にページフォールトが使用されて、必要に応じてディスクから実際にロードされます。ページファイルはこれに関与していません。

したがって、「ディスクへのページング」と考えるものの多くは、最初からディスク上にあったものかもしれません。


それは私の質問に答えるとは思わないが、私はそれを理解していなかったし、それは理にかなっている。Windowsカーネルのページングを無効にした場合、なぜタスクマネージャーが75%がページアウトされていると表示し続けるのですか(400MBカーネルで275MBページングされている)。これは、RAMの空き容量がまだ複数ある場合に、Windowsがページングを頻繁に行うように見える理由についての私の質問にも対応していません。
SqlRyan、2009年

1
あなたは「ページアウト」を「ページアウトされた書き込み可能なメモリ」として読んでいますが、カーネルメモリのコンテキストでは、「ページング」は「ページアウトできる」ことを意味し、「非ページ」は「ページングされない」ことを意味します-アウト'。後者は、ページングシステムが動作できない状況(割り込みハンドラなど)でメモリが必要な場合に、KMプログラミングにとって重要です。
ウィルディーン

あなたが使用している用語のコンテキストでは(私はカーネル開発者ではないので、私には何もわかりません)、このレジストリの変更により、カーネル全体が "非ページ"( "ページアウトされることはありません」)、そしてそれはそれが行うことではありません。他の人が私と同じ期待を持っているかどうか、またはこの変更が何をすることになっていたかを誤って解釈していないかどうかを確認したかっただけです。
SqlRyan、2009年

3

この設定の使用方法を1つ追加するだけxperfです。スタックウォーキングで必要です。

http://blogs.msdn.com/b/pigscanfly/archive/2009/08/06/stack-walking-in-xperf.aspx

Paging Executiveを無効にする

64ビットWindowsでトレースを機能させるには、DisablePagingExecutiveレジストリキーを設定する必要があります。これはオペレーティングシステムに、カーネルモードドライバーとシステムコードをディスクにページングしないように指示します。これは、xperfを使用して64ビットコールスタックを取得するための前提条件です。 xperfスタックウォークコードは、ページアウトされたページにアクセスできません。

設定に関するもう1つの情報。この引用はインターネット上で見つけることができますが、その主な出典はわかりません。

DisablePagingExecutiveはntoskrnl.exeにのみ適用されます。win32k.sys(ntoskrnl.exeよりはるかに大きい)、他のドライバーのページング可能な部分、ページプール、およびもちろんファイルシステムキャッシュには適用されません。これらはすべてカーネルアドレス空間に存在し、ディスクにページングされます。メモリの少ないシステムでは、これによりアプリケーションコードが不必要にページングされ、パフォーマンスが低下する可能性があります。ワークロードに十分なRAMがあれば問題ありませんが、ワークロードに十分なRAMがあれば、システムはページングをあまり行いません。この設定は、ドライバーをデバッグする場合に役立ち、一般に、限定された既知のアプリケーションセットを実行しているサーバーでのみ使用することをお勧めします

したがって、使用xperf法以外の利点は不明確であると結論付けることができます。基本的に、ページングからの「ほぼランダム」なものを制限し、さらに考えてみると、その結果、他の何かがより頻繁にページアウトされます。


2

DisablePagingExecutiveの調整はページングを停止しません。これは、「Executive」(つまり、カーネル自体)がページングされるのを防ぎ、個々のページングされたアプリだけでなく、システム全体の速度低下を引き起こすことを目的としています。

システムプロパティ(またはHKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Memory Management \ PagingFiles)ですべてのページファイルを削除することにより、ページングを完全に無効にしてみてください。これは私にとってはうまく機能しますが、物理メモリが不足するとかなり不快になり、STOPエラーをデバッグするためのページファイルが必要になります。


私は数日間ページファイルなしで実行してきましたが、それはかなりうまくいきます。Windows7は、メモリ不足のアプリが少なくなり始めたときに強制終了するという提案を実際に提供します。
Froosh

1

カーネル、エグゼクティブ、デバイスドライバーなどのシステムレベルのコンポーネントは、2つのプールからメモリを割り当てることができます。これらは、メモリマネージャーの裁量でページアウトできるページプールと、常にRAMに残しておく必要がある非ページプールです。開発者は、必要に応じて、使用するプールを決定します。システムメモリマネージャーに最大限の柔軟性を与えるため、可能な限りページプールを使用することをお勧めします。どちらのプールもサイズが制限されており、特に32ビットシステムでは、これらの制限により問題が発生する可能性があります。ページプールはかなり大きくなります。非ページプールが過度に使用された場合、サイズ制限に達する可能性があり、システムに重大な問題が発生します。

「ページ」および「非ページ」カーネルメモリとしてタスクマネージャーでラベル付けされた項目は、これらのプールの割り当てを示しています。実際にページアウトされるメモリの量の動的な状態とはまったく関係ありません。"DisablePagingExceutive"レジストリエントリは、ページプールの一部の動的ページング状態に影響を与えるため、ask Managerによってその影響が示されることはありません。


1

システム設定を変更する場合、システム設定を変更するとどのような種類の結果が得られるかを知るために、この情報またはそれと同等のものを理解する必要があります。システムパフォーマンス。

あなたができることは、Windowsで「リソースモニター」を開くことです。検索ツールに移動して、「リソースモニター」を検索します。または、コマンド実行ツールを開いて(これを読んでいる人なら誰でもその方法を知っていると思います)、「resmon」と入力します。

このツールを使用して、CPUアクティビティ、メモリアクティビティ、ハードディスクアクティビティなど、あらゆる種類のシステムアクティビティを監視します。「リソースモニター」に含まれる情報をまだよく知らない場合は、システム設定の変更によって行われる結果のタイプを測定するのに役立つテストを実行するために、それをよく理解する必要があるため、少し詳しく調べてください。

基本的な考え方は、システム設定の変更によるパフォーマンス関連の結果を測定するために、コンピューターシステムに特定のタスクを実行させるときに「リソースモニター」を実行することです。パフォーマンスをテストしようとしているシステムリソースを使用するタスクを実行します。たとえば、プロセッサ、RAMメモリ、ハードディスク、グラフィックプロセッサユニット、またはネットワークデバイスをテストできるタスクがあります。Googleを使用して、テストするコンピューターリソースのパフォーマンスをテストする方法を見つけます。

たとえば、システム設定「Disaging Paging Executive」に変更を加えた場合、コンピューターリソースでテストを実行し、「Resource Monitor」を使用して、変更がどのような結果をもたらすかを測定できます(変更がある場合)。

次に、データを比較して、変更した古いシステム設定と新しいシステム設定の間に大きな違いがあるかどうかを確認します。

システムリソースのパフォーマンスをテストするいくつかの方法には、監視および測定するソフトウェアが付属しているため、必ずしも「リソースモニター」を使用する必要はありません。

重要なのは、体系的な方法に従って、コンピュータに実行を要求するタスクに関連して、変更がシステムのパフォーマンスにまったく影響しないかどうかを確認することです。

1つの設定を変更します。パフォーマンスの変化をテストします。テストの結果を決定します。結果に基づいて、設定を元の設定に戻すか、別の設定に変更するか、そのままにしておくかを決定します。1)設定2)テスト3)結果4)決定。

この方法を使用すると、「ページングエグゼクティブの無効化」を含むすべての種類のシステム設定調整に論理的な推論を行うことができます。

幸せな微調整。


1

たくさんある!この投稿に関する非常に良い情報のうち、私は感銘を受けました。値が1のDisablePagingExecutiveは、xpからwindows 10、32ビットから64ビット(マザーボードに十分なRAMがある限り)のWindowsバージョンをクリーンインストールした後、デスクトップの最初のサイトで行うのが最善であることに気付きましたが、 DisablePagingExecutiveに値1を適用した後、同じ値をLargeSystemCacheにも作成する必要があります。

また、上記のように、これらの調整は通常Windowsサーバーで行われますが、デバッグ時にも便利です。

これらの変更は自己責任で使用されるため、誰もが上記で言及したことを考慮に入れて、DisablePagingExecutiveで言及された各キーをgoogleにしても害はありません。1覚えていません... LargeSystemCache。

十分なRAMがあることを確認してください。十分なRAMがないと、システムで問題を処理する必要がなくなり、システムでブルースクリーン(bsod)が発生する可能性があります。

4 GBのRAMは、上記の微調整を適用する最小値です。多くのRAMを使用する強力なアプリケーションを使用しない場合、またはゲームを実行する場合は、これらをそのままにしておくのが最善です。

(XP:少なくとも256 MBのRAM)

レジストリで何かを行う前に、必要に応じてレジストリを復元できるように、オペレーティングシステムのハードドライブまたは任意の種類の別のストレージではなく、レジストリをストレージデバイスにアップすることをお勧めします。

私の上の情報は本当にTを横切り、iをドットで囲みます。

                    Make sure to backup your system.
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.