この質問はlinux
のみに固有であることに注意してください。そして、_swap space
_とは、専用の_swap partition
_を意味します。
私はこれについて少しgoogle
を行い、これらのdefinitions
を見つけました:
_Paging refers to writing portions, termed pages, of a process’ memory to disk.
Swapping, strictly speaking, refers to writing the entire process, not just part, to disk.
In Linux, true swapping is exceedingly rare, but the terms paging and swapping
often are used interchangeably.
_
そして
_page-out: The system's free memory is less than a threshold "lotsfree" and unnused / least used pages are moved to the swap area.
page-in: One process which is running requested for a page that is not in the current memory (page-fault), it's pages are being brought back to memory.
swap-out: System is thrashing and has deactivated a process and it's memory pages are moved into the swap area.
swap-in: A deactivated process is back to work and it's pages are being brought into the memory.
_
ここで、この質問を、ページングとスワッピングの違いについて尋ねる質問と複製することをお勧めします。しかし、私はもう少し求めます。いつでも、_/proc/vmstat
_のこれらのカウンターは相互に排他的ですか?つまり、パラメータpswpin
にはpgpgin
からのカウントが含まれていますか、またはその逆ですか?プロセスがdeactivated
の場合、正確にはどうなりますか?すべてのページがswap
スペースに移動された場合、複数のpageouts
とどの程度正確に異なりますか?また、ページ違反が発生するたびにpagein
が発生した場合、このイベントに関する他の2つのパラメーターpgmajfault
とpgfault
について何が言えるでしょうか。 pagefault (major? minor?)
が発生するたびに、対応するpagein
も発生するのは事実ですか?
これらの個々のパラメーターをテストするために、いくつかのサンプルプログラム/ベンチマークが提案されていると、役に立ちます。
PS:私は質問を追加/編集し続けるかもしれません:)
最新のLinuxカーネルの場合pgpgin–システムがディスクから1秒あたりにページインしたキロバイト数。 pgpgout –システムが1秒あたりにディスクにページアウトしたキロバイト数。
pswpin –システムが1秒あたりにディスクからスワップインしたページ数。 pswpout –システムがディスクにスワップアウトした1秒あたりのページ数。
Pgpginとpgpgoutは、基本的にIOアクティビティを示します。
email で指摘されているように
とても古い質問で、今のところ正解はありません。
まず、メモリはCPUとカーネルによっていわゆるページに分割されます。ページのサイズはCPUのアーキテクチャによって指定され、多くのアーキテクチャは複数の異なるページサイズをサポートしますが、x86_64アーキテクチャの最も一般的なページサイズのサイズは4KBです。あなたが話しているこれらのパラメータは、ディスクに対して読み取られた/書き込まれたメモリページの数とスワップされたメモリページの数を示しています。
page inはLinuxカーネルの通常のアクティビティであり、ディスクから(キャッシュされていない)バイナリをオペレーティングメモリにロードするたびに、つまりアプリケーションを起動するたびに発生することに注意してください。 。
Pginおよびpgoutの操作は必ずしも心配する必要があるとは限らないため、スワップの情報のみを含む追加のカウンター(pswpinおよびpswpoutカウンター)が作成されました。これらは、メモリページがスワップに書き込まれるときまたはスワップから読み取られるときにインクリメントされます。スワップ。
繰り返しますが、これも問題を示すものではなく、特定の状況下でのみ問題を示します。たとえば、これらの数値が短期間に大きく変化する場合(通常はシステムのメモリが不足している場合)などです。
つまり、簡単に言えば: