0

Linux がページとページング メカニズムを使用している場所をいくつか見つけましたが、このファイルがどこにあるのか、どのように構成するのかはわかりませんでした。

私が見つけたすべての情報は、Linux スワップ ファイル/パーティションに関するものです。ページングとスワッピングには違いがあります。

ページングは​​、ページ (データの一部を含む小さなフレーム - 通常は 4 KB ですが、OS によって異なる場合があります) をメイン メモリからバックベンド ストレージに移動します。これは、オペレーティング システムの通常の機能として常に発生します。スワッピングはプロセス全体をストレージに移動し、システムがメモリに負荷をかけている場合、または Windows 8 で新しいアプリケーションが休止状態にある場合に発生します。

Linux はどちらの場合もスワップ ファイル/パーティションを使用しますか? その場合、現在ページアウトされているページ数を確認するにはどうすればよいですか? この情報は、vmstat、free、または swapon コマンドにはありません (または、表示されません)。

または、ページングに使用される別のファイルがありますか? もしそうなら、どうすればそれを設定できますか(そしてその使用法を監視できますか)?

それとも、Linux はページングをまったく使用していないのに誤解されたのでしょうか?

回答が Red Hat Enterprise Linux バージョン 6 と 7 の両方に固有のものであれば幸いですが、すべての Linux に関する一般的な回答も適切です。

前もって感謝します。

4

2 に答える 2

3

Linux では、スワップ パーティションがページングに使用されます。

Linux は、プロセス全体をスワップ アウトすることによってメモリ プレッシャーに対応しません。仮想メモリ システムは、ページごとにページングを要求します。極度のメモリ プレッシャ下では、1 つまたは複数のプロセスが OOM キラーによって強制終了されます。( の最初の注に、ドキュメントへの便利なリンクがいくつかありますman malloc)

topヘッダーにスワップ パーティションの使用状況を示す行がありますが、必要な情報がそれだけの場合は、

swapon -s

man swapon詳細については。

スワップ パーティションの使用量は、マップされていないページの数と同じではありません。mmapページは、呼び出しを使用してファイルにメモリ マップされる場合があります。そのページにはファイルにバッキング ストアがあるため、スワップ パーティションにも書き込む必要はなく、システムはそのためにスワップ領域を使用しません。しかし、スワップ パーティションの使用率はかなり良い指標です。

また、Linux は (Windows とは異なり) ページが割り当てられるときにスワップ領域を割り当てないことに注意してください。代わりに、バッキング ストアを使用せずに新しいページを仮想メモリ マップに追加します。ページをスワップアウトする必要がある場合は、スワップ領域を割り当てます。その結果 (前に参照した malloc マンページで説明されているように)、malloc呼び出しは仮想メモリの割り当てに成功する可能性がありますが、その後その仮想メモリを使用しようとすると失敗する可能性があります。

于 2016-01-28T07:06:34.813 に答える
1

Linux は「スワップ パーティション」という用語を歴史的な遺物として保持していますが、実際にはページングを実行します。したがって、あなたの期待は裏切られます。あなたは古風な用語に投げ込まれただけです。

于 2016-01-28T16:59:15.127 に答える