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


9

この質問は特定のユーザーに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ページフォールトが発生するたびにa が発生した場合、他の2つのパラメーターについて、pgmajfaultおよびpgfaultこのイベントに関して何が言えるでしょうか。a pagefault (major? minor?)が発生するたびに、対応するものpageinも発生するのですか?

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

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


回答:


1
  1. pgpgin-システムがディスクからページインした1秒あたりのキロバイト数。
  2. pgpgout-システムがディスクにページアウトした1秒あたりのキロバイト数。
  3. pswpin-システムがディスクからスワップインした1秒あたりのキロバイト数。
  4. pswpout-システムがディスクにスワップアウトした1秒あたりのキロバイト数。

5
の値 1秒あたりで/proc/vmstatなく、最後の起動以降の合計です(linuxinsight.com/proc_vmstat.htmlを参照)。ある時間単位のレート値が必要な場合は、/proc/vmstat値の差を取る必要があります。これは、ユーティリティがまさに望んvmstatでいるsarことであり、実行できることです。
devkev 2017

2
pswpin / pswpoutは、キロバイトではなくページ数です。
George Sovetov

1

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

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

pgpginおよびpgpgoutは、基本的にIOアクティビティを示します。

メールで指摘されたように


2
pswpi / pswpout =ページイン/アウト(キロバイトイン/アウトではない)
IanB

5
の値 1秒あたりで/proc/vmstatなく、最後の起動以降の合計です(linuxinsight.com/proc_vmstat.htmlを参照)。ある時間単位のレート値が必要な場合は、/proc/vmstat値の差を取る必要があります。これは、ユーティリティがまさに望んvmstatでいるsarことであり、実行できることです。
devkev 2017

1

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

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

ことを覚えておいてください中のページはあなたが任意のアプリケーションを起動するたびです- Linuxカーネルの通常の活動があり、それはあなたが動作してメモリに(キャッシュされていない)ディスクからバイナリをロードするほぼすべての時間を発生します。

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

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

つまり、簡単に言えば:

  • pgpgin、pgpgout-ディスクから読み取られてメモリに書き込まれるページの数。通常、これらの数についてそれほど気にする必要はありません。
  • pswpin、pswpout-(プロメテウスのようないくつかのモニタリングを介して)これらの数値を時間ごとに追跡したい場合があります。スパイクがある場合は、システムのスワップが激しく、問題があります。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.