Warum ist der VmRSS bei Verwendung von mmap inkonsistent?
613
Matthieu M.
Eine Anwendung, die wir haben, kombiniert zwei Elemente:
- es weist ein 707 MB-Speichersegment zu
mmap(0, sizeof(T), PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_HUGETLB, -1, 0)
. - Es meldet seine eigene Speichernutzung, indem es
/proc/self/status
den Wert desVmRSS
Feldes analysiert und extrahiert .
Leider ist der gemeldete Speicher in allen Prozessabläufen inkonsistent. Zum Beispiel über zwei aufeinanderfolgende Läufe hinweg auf demselben Rechner:
- die ersten gemeldeten 971956224 Bytes oder 927 MB wurden über 8 Minuten gehalten.
- Das zweite gemeldete 230174720 Byte oder 220 MB wurde über 8 Minuten gehalten.
Der Unterschied: 741527552 Bytes (~ 707 MB) entspricht der Größe unseres mmap
Segments.
Das mmap
Segment wird systematisch zugewiesen, und auf die Zuordnung folgt unmittelbar ein memset
von 0xfe
, um das Betriebssystem zu zwingen, den Speicher zu übergeben und spätere Seitenfehler zu vermeiden.
Inkonsistent:
- RSS berichtet von 220 MB, wenn der Prozess immer 707 MB zuweist.
- RSS meldete zwischen aufeinander folgenden Durchläufen zwischen 220 MB und 927 MB Flackern.
Konsistent:
- Der gemeldete RSS ist während des gesamten Prozessablaufs relativ konstant, variiert jedoch nur um ein paar MB und enthält entweder die gesamten 707 MB oder nicht.
Warum ist der VmRSS bei Verwendung von mmap inkonsistent?
Auf der jeweiligen Maschine, als dieser Lauf ausgeführt wurde:
$ rpm -q centos-release centos-release-7-2.1511.el7.centos.2.10.x86_64
Andere Maschinen mit etwas anderen Centos-Versionen zeigen jedoch dasselbe Verhalten.
Ein Kollege machte eine Bemerkung, dass dies ein Unterschied darin sein könnte, ob das "mmap" -Segment von einer Datei unterstützt wird oder nicht; konnte jedoch nicht erklären, warum es nur manchmal durch eine Datei auf einem bestimmten Computer gesichert wurde.
Matthieu M. vor 6 Jahren
0
0 Antworten auf die Frage
Verwandte Probleme
-
9
Was ist der Unterschied zwischen den Befehlen "su -s" und "sudo -s"?
-
4
Gutes freies Ubuntu Server-VMWare-Image benötigt
-
4
Was sind die Unterschiede zwischen den großen Linux-Distributionen? Werde ich es merken
-
2
Begrenzung der CPU-Auslastung für Flash in Firefox?
-
2
Wie kann ich mein Mikrofon unter Debian GNOME zum Laufen bringen?
-
2
Conky-Setups - Beispiele / Ideen?
-
3
Was sind die Unterschiede zwischen Linux Window Managern?
-
2
ThunderBird / Lichtsynchronisation mit SE k770i
-
6
Muss ich 3 RAM-DIMMs haben, um DDR3 verwenden zu können, oder sogar eine 3-Kanal-CPU betreiben könne...
-
4
Linux-Dateisystem