Wie viele auf StackExchange und anderswo angegeben haben, beträgt eine typische Kernel / mmu-Seitengröße für Linux 4 KiB. Ich habe überprüft, ob dies bei meinem Betriebssystem / meiner Architektur (RHEL 6.6, Intel Xeon E5-2690) der Fall ist.
Der vmstat -s
Befehl meldet nun unter anderem "Seiten ausgelagert" und "Seiten ausgelagert", die Zähler sind, die beim Booten bei 0 beginnen. Ich habe bestätigt, dass diese Werte zu jedem Zeitpunkt genau den Werten entsprechen, die für die Einträge pgpgin
und pgpgout
Einträge in gefunden wurden /proc/vmstat
(erhält der Befehl vmstat sie von /proc/vmstat
?). Andere Befehle, insbesondere sar -B
Bericht pgpgin/s
und pgpgout/s
als Kibibytes, werden während eines bestimmten Intervalls pro Sekunde ein- und ausgeblendet.
In jüngsten Tests habe ich gesehen, dass pgpgin/s
und pgpgout/s
Werte von sar auch genau einer Rate entsprechen, die aus vmstat-Werten für ein bestimmtes Intervall berechnet wurde. Dies lässt mich zu dem Schluss kommen, dass vmstat Werte für Seiten mit einer Größe von 1 KB meldet. Somit sind die pgpgin/out
Werte von /proc/vmstat
die Anzahl der KiB, die seit dem Booten ein- und ausgeblendet wurden.
Meine Fragen sind:
- Ist dies eine gültige Schlussfolgerung, und
- Wenn ja, warum melden vmstat und andere Einrichtungen auf 1-KiB-Seiten anstelle der 4-KiB-Seiten, die die "gemeinsame Währung" des Betriebssystems und der Architektur sind? Insbesondere sagt vmstat "
pages paged in/out
", nicht "KiBs paged in/out
". Das ist verwirrend.
Antworten:
In Bezug auf die Zähler in
/proc/vmstat
der Funktion, die diese Werte zu aktualisieren scheint, istsubmit_bio
inLinux/block/blk-core.c
.bio_sectors
ist ein Makro inLinux/include/linux/bio.h
Dies scheint mir nahezulegen, dass die Zahlen in Sektorgrößen (512) Bytes gezählt werden. Angesichts dessen, welchen Wert Sie am Ende erhalten würden, wenn Sie die Anzahl der Bytes um neun nach rechts verschieben würden.
Dies scheint sowieso ein ähnliches Setup zwischen den Kerneln 2.6.27 - 4.0.x zu sein.
quelle