Was ist der genaue Unterschied zwischen den Parametern (pgpgin, pswpin) und (pswpout, pgpgout) in / proc / vmstat?

9

Bitte beachten Sie, dass diese Frage nur für spezifisch ist linux. Und damit swap spacemeine ich die engagierten swap partition.

Ich habe googleein bisschen darüber nachgedacht und Folgendes gefunden 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.

und

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.

Jetzt möchten Sie diese Frage möglicherweise mit denjenigen duplizieren, die nach Unterschieden zwischen Paging und Swapping fragen. Aber ich suche ein bisschen mehr. Schließen sich diese Zähler zu irgendeinem Zeitpunkt /proc/vmstatgegenseitig aus? Damit meine ich, enthält der Parameter pswpineinige Zählungen von pgpginoder umgekehrt? Was genau passiert, wenn ein Prozess ist deactivated? Wenn alle Seiten in den swapWeltraum verschoben werden, wie genau unterscheidet es sich dann von mehreren pageouts? pageinWas kann man über die beiden anderen Parameter pgmajfaultund pgfaultin Bezug auf dieses Ereignis sagen , wenn a auftritt, wenn ein Seitenfehler auftritt ? Ist es der Fall, dass immer dann, wenn ein pagefault (major? minor?)auftritt, auch ein entsprechender pageinauftritt?

Es wäre hilfreich, wenn einige Beispielprogramme / Benchmarks vorgeschlagen würden, um diese einzelnen Parameter zu testen.

PS: Ich kann die Fragen weiterhin hinzufügen / bearbeiten :)

Nehal J Wani
quelle
Sie sollten diese Frage besser auf unix.stackexchange.com
Antonio

Antworten:

1
  1. pgpgin - Anzahl der Kilobyte, die das System pro Sekunde von der Festplatte eingelagert hat.
  2. pgpgout - Anzahl der Kilobyte, die das System pro Sekunde auf die Festplatte ausgelagert hat.
  3. pswpin - Anzahl der Kilobyte, die das System pro Sekunde von der Festplatte ausgetauscht hat.
  4. pswpout - Anzahl der Kilobyte, die das System pro Sekunde auf die Festplatte ausgelagert hat.
Kanti Varanasi
quelle
5
Die Werte in /proc/vmstatsind nicht pro Sekunde, sondern seit dem letzten Start insgesamt (siehe linuxinsight.com/proc_vmstat.html ). Wenn Sie Ratenwerte über eine bestimmte Zeiteinheit hinweg wünschen, müssen Sie die Differenz zwischen den /proc/vmstatWerten berücksichtigen - genau das, was Dienstprogramme mögen vmstatund sarfür Sie tun können.
Devkev
2
pswpin / pswpout ist die Anzahl der Seiten, nicht Kilobyte.
George Sovetov
1

Für die neuesten Linux-Kernel pgpgin - Anzahl der Kilobyte, die das System pro Sekunde von der Festplatte eingelagert hat. pgpgout - Anzahl der Kilobyte, die das System pro Sekunde auf die Festplatte ausgelagert hat.

pswpin - Anzahl der Seiten, die das System pro Sekunde von der Festplatte ausgetauscht hat. pswpout - Anzahl der Seiten, die das System pro Sekunde auf die Festplatte ausgelagert hat.

Pgpgin und pgpgout zeigen im Wesentlichen die IO-Aktivität an.

Wie in der E-Mail angegeben

Nikolai
quelle
2
pswpi / pswpout = Seiten rein / raus nicht Kilobyte
rein
5
Die Werte in /proc/vmstatsind nicht pro Sekunde, sondern seit dem letzten Start insgesamt (siehe linuxinsight.com/proc_vmstat.html ). Wenn Sie Ratenwerte über eine bestimmte Zeiteinheit hinweg wünschen, müssen Sie die Differenz zwischen den /proc/vmstatWerten berücksichtigen - genau das, was Dienstprogramme mögen vmstatund sarfür Sie tun können.
Devkev
1

So alte Frage und bisher keine richtige Antwort.

Zunächst wird der Speicher nach CPU und Kernel in sogenannte Seiten unterteilt. Die Seitengröße wird durch die Architektur der CPU angegeben. Viele Architekturen unterstützen mehrere verschiedene Seitengrößen, aber die gängigste Seitengröße in der x86_64-Architektur hat eine Größe von 4 KB. Diese Parameter, über die Sie sprechen, zeigen an, wie viele Speicherseiten entweder auf die Festplatte gelesen / geschrieben wurden und wie viele davon ausgetauscht werden.

Beachten Sie, dass Page In eine normale Aktivität im Linux-Kernel ist. Sie tritt fast jedes Mal auf, wenn Sie eine Binärdatei von der Festplatte (die nicht zwischengespeichert ist) in den Betriebsspeicher laden - also jedes Mal, wenn Sie eine Anwendung starten.

Da Pgin- und Pgout-Operationen nicht immer etwas sind, über das Sie sich Sorgen machen müssen, wurden zusätzliche Zähler erstellt, die nur Informationen für den Swap enthalten - das sind die pswpin- und pswpout-Zähler. Sie werden erhöht, wenn eine Speicherseite entweder in den Swap geschrieben oder aus dieser gelesen wird Tauschen.

Wiederum - dies weist auch nicht auf ein Problem hin, sondern nur auf ein Problem unter bestimmten Umständen - beispielsweise wenn sich diese Zahlen in kurzer Zeit stark ändern (normalerweise, wenn Ihr System nicht über genügend Speicher verfügt).

Also auf den Punkt gebracht:

  • pgpgin, pgpgout - Anzahl der Seiten, die von der Festplatte gelesen und in den Speicher geschrieben werden. Normalerweise müssen Sie sich nicht so sehr um diese Zahlen kümmern
  • pswpin, pswpout - Möglicherweise möchten Sie diese Zahlen pro Zeit verfolgen (über eine Überwachung wie Prometheus). Wenn es Spitzen gibt, bedeutet dies, dass das System stark ausgetauscht wird und Sie ein Problem haben
Petr
quelle