Moin,
Ich hadere gerade mit Paging und Swapping.
Ich habe einen Linux-Server auf dem ein SNMP-Agent läuft. Dieser liefert 4 OIDs:
.1.3.6.1.4.1.546.1.1.7.8.18.0: numPageSwapIns The total number of pages that have been swapped in since the kernel was last initialized. .1.3.6.1.4.1.546.1.1.7.8.19.0: numPageSwapOuts The total number of pages that have been swapped out since the kernel was last initialized. .1.3.6.1.4.1.546.1.1.7.8.22.0: numPageIns The total number of pages that have been paged in since the kernel was last initialized. .1.3.6.1.4.1.546.1.1.7.8.23.0: numPageOuts The total number of pages that have been paged out since the kernel was last initialized.
Die letzteren beiden OIDs gehen relativ gleichmäßig hoch, die Ersteren nicht. Laut Wikipedia ist
Paging: der Vorgang, daß der Kernel Programmteile (oder Ähnliches) von der Platte liest oder auch wieder freigibt.[1] Swapping: der Vorgang, daß der Kernel Programmteile die im physischen RAM liegen ausswapped also auf die Platte schiebt, da der physische RAM zur Neige geht.
Daß die Paging In/Out also hochgehen ist völlig normal und kein Zeichen für Performance-Probleme. Paging und Swapping haben eigentlich nichts miteinander zu tun (bis auf daß es um RAM geht).
Bis hierhin alles korrekt?
Wenn ich mir den Output von vmstat anschaue, sehe ich nur die beiden coloumns si & so (swap in/out). Wo kann ich die Zahlen für pi & po nachlesen? Aus /proc/vmstat werde ich nicht ganz schlau. Ich würde gerne die Daten des SNMP-Agenten verfizieren, da ein Fehlverhalten des Agenten vermutet wird.
Danke, Hilmar
[1] http://en.wikipedia.org/wiki/Paging
On 24.07.13 Peter Hochgemuth (210567iph@web.de) wrote:
Hi,
hilft Dir evtl. ein
$ vmstat -s
Hmm, der gibt mir auch nur Teile von /proc/vmstat aus.
hille@sid:~ $ grep swp /proc/vmstat pswpin 0 pswpout 106 hille@sid:~ $ grep pgpg /proc/vmstat pgpgin 5661020 pgpgout 4801864 hille@sid:~ $ vmstat -s|grep page 5661020 pages paged in 4801864 pages paged out 0 pages swapped in 106 pages swapped out
Die Frage ist nur, was bedeuten die Zahlen wirklich? Laut A. Lingnau sind die pages swapped in/out in Wirklichkeit die Pages Out/In und die pages paged in/out *alle* I/O Operationen. Eine Stütze für die Behauptung habe ich bisher nur in arch/s390/appldata/appldata_mem.c (Linux 3.10) gefunden:
u64 pgpgin; /* data read from disk */ u64 pgpgout; /* data written to disk */ u64 pswpin; /* pages swapped in */ u64 pswpout; /* pages swapped out */
H.
Hallo Hilmar,
im Grunde beschreibst Du das alles ganz richtig. Wenn Dein System nicht unter Last ist sollte auch kein swapping auftreten.
Schau mal im top - die Zahl bei "Swap: xxx used", zeigt wieviel ausgelagert ist und bei deinen 106 pages müssten das dann 424k sein.
Wie gesagt, swap geht erst los, wenn der Haupspeicher voll (Daten) ist.
Gruß Peter
On 25.07.13 Peter Hochgemuth (210567iph@web.de) wrote:
Moin,
Schau mal im top - die Zahl bei "Swap: xxx used", zeigt wieviel ausgelagert ist und bei deinen 106 pages müssten das dann 424k sein.
Die Zahlen die man in /proc/vmstat sieht sind ja nur die Counter, also hier werden die Pages In/Out hochgezählt. Im top hingegen sieht man die aktuellen/absoluten Werte. Die Zahlen sollten also nicht vergleichbar sein.
Wie gesagt, swap geht erst los, wenn der Haupspeicher voll (Daten) ist.
Laut A. Lingnau (und dem glaube ich das mal) gibt es sowieso kein Swapping (komplettes Auslagern von Programmen) mehr, sondern nur noch Paging (seitenweises Auslagern von Programmen). Das nur am Rande.
Was mich leider nicht weiterbringt bei der Frage was die beiden Werte in /proc/vmstat wirklich bedeuten. Ich halte mich vorläufig an den Kommentar im Quellcode, wenn der auch in einer arch-spezifischen Datei war, trifft er hoffentlich auch für die andere Arches zu.
H.
lug-dd@mailman.schlittermann.de