web-dev-qa-db-ja.com

/ proc / vmstatのパラメーター(pgpgin、pswpin)と(pswpout、pgpgout)の正確な違いは何ですか?

この質問は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つのパラメーターpgmajfaultpgfaultについて何が言えるでしょうか。 pagefault (major? minor?)が発生するたびに、対応するpageinも発生するのは事実ですか?

これらの個々のパラメーターをテストするために、いくつかのサンプルプログラム/ベンチマークが提案されていると、役に立ちます。

PS:私は質問を追加/編集し続けるかもしれません:)

9
Nehal J Wani

最新のLinuxカーネルの場合pgpgin–システムがディスクから1秒あたりにページインしたキロバイト数。 pgpgout –システムが1秒あたりにディスクにページアウトしたキロバイト数。

pswpin –システムが1秒あたりにディスクからスワップインしたページ数。 pswpout –システムがディスクにスワップアウトした1秒あたりのページ数。

Pgpginとpgpgoutは、基本的にIOアクティビティを示します。

email で指摘されているように

1
Nikolai

とても古い質問で、今のところ正解はありません。

まず、メモリはCPUとカーネルによっていわゆるページに分割されます。ページのサイズはCPUのアーキテクチャによって指定され、多くのアーキテクチャは複数の異なるページサイズをサポートしますが、x86_64アーキテクチャの最も一般的なページサイズのサイズは4KBです。あなたが話しているこれらのパラメータは、ディスクに対して読み取られた/書き込まれたメモリページの数とスワップされたメモリページの数を示しています。

page inはLinuxカーネルの通常のアクティビティであり、ディスクから(キャッシュされていない)バイナリをオペレーティングメモリにロードするたびに、つまりアプリケーションを起動するたびに発生することに注意してください。 。

Pginおよびpgoutの操作は必ずしも心配する必要があるとは限らないため、スワップの情報のみを含む追加のカウンター(pswpinおよびpswpoutカウンター)が作成されました。これらは、メモリページがスワップに書き込まれるときまたはスワップから読み取られるときにインクリメントされます。スワップ。

繰り返しますが、これも問題を示すものではなく、特定の状況下でのみ問題を示します。たとえば、これらの数値が短期間に大きく変化する場合(通常はシステムのメモリが不足している場合)などです。

つまり、簡単に言えば:

  • pgpgin、pgpgout-ディスクから読み取られてメモリに書き込まれるページの数。通常、これらの数についてそれほど気にする必要はありません。
  • pswpin、pswpout-(プロメテウスのようないくつかのモニタリングを介して)これらの数値を時間ごとに追跡したい場合があります。スパイクがある場合は、システムのスワップが激しく、問題があります。
1
Petr
  1. pgpgin-1秒あたりにシステムがディスクからページインしたキロバイト数。
  2. pgpgout-1秒あたりにシステムがディスクにページアウトしたキロバイト数。
  3. pswpin-1秒あたりにシステムがディスクからスワップインしたキロバイト数。
  4. pswpout-1秒あたりにシステムがディスクにスワップアウトしたキロバイト数。
1
Kanti Varanasi