ほとんどのフィールドは理解できますが、「ページイン」と「ページイン」の違いを説明できる人はいますか?スワップは、プロセス全体がハードドライブのスワップ領域に移動することであり、ページングは特定のページがスワップ領域に移動されることを保証します。それでは、「ページイン」はメインメモリに移動されたプロセス部分に属するページであり、「ページイン」はメインメモリに移動されたプロセス全体に属するページを意味しますか?誰かがここで説明できますか?他の分野についても、より多くの情報があれば良いようです。ドキュメントを読みましたが、このコマンドと特定のオプションに関する有用な情報が見つかりませんでした。コマンド出力の例:
vmstat -s
131072 K total memory
125700 K used memory
59836 K active memory
49268 K inactive memory
5372 K free memory
0 K buffer memory
101984 K swap cache
0 K total swap
0 K used swap
0 K free swap
18594 non-nice user cpu ticks
0 nice user cpu ticks
17990 system cpu ticks
108464145 idle cpu ticks
1121 IO-wait cpu ticks
0 IRQ cpu ticks
0 softirq cpu ticks
0 stolen cpu ticks
123672 pages paged in
486324 pages paged out
0 pages swapped in
0 pages swapped out
0 interrupts
7439516 CPU context switches
1457280256 boot time
131927 forks
値を比較して理解しやすくするために、関連ファイルの出力は次のとおりです。以前のファイルと同時に撮影されました。
cat /proc/meminfo
MemTotal: 131072 kB
MemFree: 5404 kB
Cached: 101984 kB
Buffers: 0 kB
Active: 59820 kB
Inactive: 49268 kB
Active(anon): 11532 kB
Inactive(anon): 16920 kB
Active(file): 48288 kB
Inactive(file): 32348 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 28452 kB
Shmem: 21348 kB
Slab: 16544 kB
SReclaimable: 10580 kB
SUnreclaim: 5964 kB
ベストアンサー1
プログラムを実行するには、プログラムをメモリにロードする必要があることを検討してください。特定の量の使用可能なアドレス空間があり、プログラムにはより多くのアドレス空間が必要です。使用可能なアドレス空間をページで除算します。これを仮想ページと呼びます。すべてのページをロードするのに十分な物理メモリがないと仮定し、これらの仮想ページを物理メモリにマップします。必要なページはすぐに読み込まれ、今すぐ不要なページは維持します。ただし、時が来たら、未使用のページをアンロードしてプログラムを実行するために必要なページをロードします。これは、ページングアルゴリズムが実行するアクションです。 「ページイン」と「ページアウト」が表示されます。
一方、スワップインまたはアウトは、プログラムを実行するのに必要なメモリ空間全体を処理します。プロセスが一部のリソースが利用可能になるのを待っている状態にあるとします。条件が満たされるまでメモリにロードする必要はありません。同時に、メモリの実行を待つ他のプロセスもあります。時が来ると、プロセス全体が交換され、再び交換されます。
大量の物理メモリを備えた最新のシステムを考えると、ほとんどのシステムでは、スワッピングは過去のものです。
もちろん、アルゴリズム(ページングおよび/またはスワッピング)もそれほど単純ではありません。これは唯一の足の概要です。ウェブ上の他の場所でこれについての詳細を読むことができます。