問題タブ [pagefile]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ntfs - Windows XP は、ページファイル (pagefile.sys) の読み取り/書き込みに NTFS ファイルシステム関数呼び出しを使用しますか?
そうであれば、発生したオーバーヘッド (ジャーナリングなど) をどのように正当化しますか? そうでない場合、ページファイルが断片化されるのはなぜですか? さらに、クラスタ サイズを大きくするとページ ファイルのパフォーマンスが向上しますか (クラスタのスラック スペースは問題ではありません)。
windows - 重いプロセスがスワップファイルに沈むのを防ぐ
私たちのサービスは、クライアントのサーバーで夜間にスリープ状態になり、その後、目覚めるのに苦労する傾向があります。発生しているように見えるのは、プロセスヒープ(場合によっては数百MB)がスワップファイルに移動されることです。これは、当社のサービスが使用されておらず、他のサービス(DBバックアップ、AVスキャンなど)の実行がスケジュールされている夜間に発生します。これが発生すると、数時間非アクティブになった後、サービスへの最初の呼び出しに最大数分かかります(その後の呼び出しには数秒かかります)。
これは仮想メモリ管理の問題であると確信しており、OSにサービスを物理メモリに保持させるという考えは本当に嫌いです。これを行うと、サーバー上の他のプロセスに悪影響を及ぼし、サーバー全体のスループットが低下することを私は知っています。そうは言っても、私たちのクライアントは私たちのアプリが応答することを望んでいます。彼らは毎晩の仕事にもっと時間がかかるかどうか気にしません。
Windowsに物理メモリにページを保持させる方法があることを漠然と覚えていますが、私はその考えを本当に嫌います。私は、より高いレベルの機能を開始する内部または外部のウォッチドッグにもっと傾いています(ほとんど何もせず、違いがない内部スケジューラがすでにいくつかあります)。そのようなサービスを提供するサードパーティのツールがあれば、それは同じくらい良かったでしょう。
この種の問題に対するコメント、推奨事項、および一般的な解決策をお聞かせください。このサービスはVC2005で記述されており、Windowsサーバーで実行されます。
windows - ページ ファイルの使用状況
ファイル システムでテキスト操作を行うスクリプトを実行します。
スクリプトはテキスト ファイル ( .h、.cpp ) で実行されます。
スクリプトを実行すると、ページ ファイルに割り当てられた VM の量に達するまで、PF の使用量が増加することがわかります。
実行中または実行後に VM をフラッシュする方法はありますか?
私はそれに関する別の質問を開きました(それは別の問題だと思いました): 複数の置換に対する単一のsedコマンド?
memory-mapped-files - メモリ マップ ファイルと「ソフト」ページ フォールト。やむを得ない?
Windows XP で実行されている 2 つのアプリケーション (プロセス) があり、メモリ マップ ファイルを介してデータを共有しています。反復ごとのメモリ割り当てをなくすためのあらゆる努力にもかかわらず、データ転送ごとに約 10 のソフト ページ フォールトが発生します。CreateFileMapping() と CreateFileView() にあるすべてのフラグを試しましたが、それでも発生します。それがメモリマップファイルの仕組みなのかどうか疑問に思い始めています。
メモリ マップド ファイルの背後にある O/S 実装の詳細を知っている人がいる場合は、次の理論に関するコメントをいただければ幸いです。無効として書き込まれます。他のプロセスが無効化されたページに属するメモリ領域を読み取ろうとすると、(設計により) ソフト ページ フォールトが発生し、O/S は無効化されたページをリロードすることを認識します。また、ソフト ページ フォールトの数は、データ書き込みのサイズに正比例します。
私の実験は、上記の理論を裏付けているようです。データを共有するときは、1 つの連続したデータ ブロックを書き込みます。つまり、共有メモリ領域全体が毎回上書きされます。ブロックを大きくすると、それに応じてソフト ページ フォールトの数が増えます。したがって、私の理論が正しい場合、メモリ マップト ファイルを使用しない以外に、ソフト ページ フォールトをなくすためにできることはありません。皮肉なことに、TCP ソケット接続の代わりにメモリ マップド ファイルを使用することを選択したのは、その方が効率的であると考えたからです。
ソフト ページ フォールトが無害である場合は、注意してください。数が多すぎると、ある時点でシステムのパフォーマンスが損なわれる可能性があると聞いています。ソフトページフォールトが本質的にそれほど有害ではない場合、1秒あたりの数が「過剰」であるというガイドラインがある場合は、それを聞きたいです。
ありがとう。
windows - 先読みバイトを取得するにはどうすればよいですか?
プログラムは将来近くの情報を必要とする可能性があるため、オペレーティングシステムはプログラムが実際に要求するよりも多くディスクから読み取ります。私のアプリケーションでは、ディスクからアイテムをフェッチするときに、要素の周囲の情報の間隔を表示したいと思います。私が要求して表示する情報の量と速度の間にはトレードオフがあります。ただし、OSはすでに要求したものより多くを読み取るため、すでにメモリ内にあるこれらのバイトへのアクセスは無料です。OSキャッシュに何があるかを調べるためにどのAPIを使用できますか?
または、メモリマップトファイルを使用することもできます。その場合、問題はページがディスクにスワップされているかどうかを確認することになります。これは一般的なOSで実行できますか?
編集:関連論文http://www.azulsystems.com/events/mspc_2008/2008_MSPC.pdf
c# - Windows XP では、単一の c: ドライブでプログラムによってページファイルを「ページング ファイルなし」に設定します。
XP ワークステーションのハード ドライブを最適化する C#/.NET アプリケーションを作成しようとしています。
- ページファイルを「ページングファイルなし」に設定
- リブート
- デフラグ ユーティリティを実行してデータとアプリを最適化する
- 連続したページ ファイルを作成する
- 再起動し、Sysinternals から pagedefrag を実行します
1号でかなり悩んでいます。次のキーを削除します: SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PagingFiles
再起動すると、システム コントロール パネルに「ページ ファイルがありません」と表示されますが、c:\pagefile.sys がまだ存在し、SYSTEM プロセスで使用されているため、削除できず、HD を最適化できません。私は PendingFileRenamingOperations を使用してみましたが、それも爆撃しました。WMI: Win32_PageFileSetting を使用してみましたが、サイズを設定することしかできません (ゼロではありません。デフォルトは 2MB です)。
もちろん、上記で概説した手動の手順を実行すると、機能します。
これを実現するには、API 呼び出しが必要だと思います。
java - JVM Page Faults はゼロであるべきですよね?どのくらいの高さまでOK?
OK 皆さん、これは別の「ばかげた質問だと思います」ですが、わかりやすくするために、ばかげているように見えることを保証します。
適切に構成された JVM の Windows タスク マネージャーでは、ページ フォールトはゼロになるはずです。(またはLinuxの人々の場合は「トップ」)
たとえば、Xmx が「4G」と表示され、JVM が 4G の物理 RAM を使用できる場合(たとえば、合計 8G のうち、OS 用に 3+G を残します)、OS は通常の jvm 操作で pagefile.sys に到達することはありません。
それが理論です。練習は何ですか?また、ページフォールトがゼロ以外の場合、許容できる数は?
監視ツール
「ページフォルトが多すぎる」を監視する最良の方法は何ですか?
ありがとう
sql-server - SQL Server ID とシーケンシャル GUIDS - ID 値の再利用によりページ ファイルがめちゃくちゃになる
IDまたはシーケンシャルGUIDのいずれかを使用していて、それらを主キーとして使用し、たとえば100 000行を保存してから、行の1つを削除し、削除された行と同じID値を持つ新しい行を挿入した場合、私はそうすると思いますページファイルでキーの順序が正しくないため、「パフォーマンス」が台無しになります。これは正しいです?もし、「リフレッシュ」する方法はありますか?たとえば、実行および/または?DBCC DBREINDEX
UPDATE STATISTICS
c# - PageFileへの読み取り/PageFileからの書き込み
2つのアプリケーションに組み込みDBを使用しています。1つはサーバーで、もう1つはクライアントです。クライアント側のアプリ。フェッチデータリクエストをサーバー側に送信して、データを取得してテーブル(またはその他)に表示できます。質問は次のとおりです。フェッチしたデータをページファイルに保存(書き込み)し、必要に応じて読み取るにはどうすればよいですか(Java、Delphi、またはc#)?
linux - バッキング物理ページが必要な場合、スワップするためにmmap()されたページを書き込む必要がないことをLinuxに伝えるにはどうすればよいですか?
うまくいけば、タイトルは明確です。mmap()を介して取得したメモリのチャンクがあります。しばらくして、私はこの範囲内のデータはもう必要ないと結論付けました。ただし、この範囲を維持したいと思います。つまり、mummap()を呼び出したくありません。私は良き市民になりたいと思っており、必要以上にシステムを交換しないようにしています。
Linuxカーネルに、特定のページが物理ページに裏打ちされていて、カーネルがその物理ページが必要であると判断した場合、わざわざそのページを書き込んでスワップしないように指示する方法はありますか?
内部的には、この魔法の関数呼び出しは、最初にスワップに書き込むことなく、指定された仮想ページと物理ページ(存在する場合)の間のマッピングを破棄すると思います。