
Ich habe Probleme mit zu wenig Arbeitsspeicher auf den von mir verwalteten Proxmox 7-Knoten. Als ich von ähnlichen Problemen las, wurde ich auf linuxatemyram.com weitergeleitet. Nachdem ich diese Seite gelesen hatte, begann ich, den „verfügbaren“ Arbeitsspeicher anstelle des „verwendeten“ Arbeitsspeichers zu überwachen. Aber das Problem blieb bestehen (der verfügbare Arbeitsspeicher nimmt mit der Betriebszeit ab).
Dann habe ich herausgefunden, dass ich mit dem Befehl Linux-Caches freigeben kann echo 3 > /proc/sys/vm/drop_caches
. Ich hatte erwartet, dass „benutzter“ Speicher frei wird, aber ich hatte nicht damit gerechnet, dass der „verfügbare“ Speicher zunimmt, denn meines Wissens nach wird verfügbarer Speicher auch als benutzt betrachtet, da er von Linux für das Caching verwendet wird.
Aber der „verfügbare“ Speicher hat nach drop_caches zugenommen, wie Sie unten sehen können:
root@proxmox13:~$ free -h
total used free shared buff/cache available
Mem: 31Gi 29Gi 1.1Gi 67Mi 258Mi 977Mi
Swap: 0B 0B 0B
root@proxmox13:~$ echo 2 > /proc/sys/vm/drop_caches
root@proxmox13:~$ free -h
total used free shared buff/cache available
Mem: 31Gi 26Gi 4.1Gi 67Mi 205Mi 3.9Gi
Swap: 0B 0B 0B
Warum wurde der Speicher vergrößert? Warum wurde der freigegebene Speicher nicht schon vorher als verfügbar betrachtet, wenn er für die Zwischenspeicherung verwendet wurde?
Vielen Dank für Ihre Hilfe.
Antwort1
Auf hohem Niveau ist verfügbar kostenlosPlusCaches und andere leicht wiederzuerlangende Dinge, zur Bequemlichkeit der Menschen.https://www.linuxatemyram.com/verwendet verfügbar, um zu erklären, was vor sich geht. Es gibt andere Zähler für verschiedene Caches, die free ausschließen.
In Wirklichkeit ist das Linux VMM kompliziert und chaotisch. Selten lässt sich der Speicherverbrauch mit einfacher Abrechnung exakt berechnen. Ich denkeZwischengespeichert in /proc/meminfo bedeutet Seitencacheaber du hast auchDentries und Inodes. Buff/Cache in Free hat sich also nicht viel geändert. Probieren Sie Slabtop aus, wenn Sie sich jemals im Detail mit Kernelobjekten befassen müssen.
Ein von 32 verfügbaren GB ist aus Sicht der Kapazitätsplanung nicht viel. Erwägen Sie, die Anzahl der Gäste pro VM-Host zu reduzieren oder den physischen Speicher zu erhöhen.
Verwenden Sie es nicht /proc/sys/vm/drop_caches
, da dies die Leistung beeinträchtigen kann, da die Caches gelöscht und die Daten erneut von der Festplatte gelesen werden müssen. Dies dient zum Testen der Leistung von Cold Storage, wenn die Benutzer zu faul sind, den Host neu zu starten.
Apropos Neustarts: Programme müssen keinen Speicherverlust verursachen, damit der verfügbare Speicher langsam abnimmt. VM-Hosts und die darin befindlichen Gäste führen wahrscheinlich Tausende von Aufgaben aus, von denen einige weiterlaufen und verschiedene Speicherzuweisungen beibehalten. Sie sollten alle paar Monate für Softwareaktualisierungen einen Neustart durchführen. Solange das „Leck“ also langsam ist, lohnt es sich möglicherweise nicht, es im Detail zu untersuchen.
Verbessern Sie Ihre Speicherüberwachung, indem Sie auch Folgendes betrachten:Druckablass-Informationen. Der Messwert, der mich wirklich interessiert, ist, ob Aufgaben aufgrund von Speichermangel ins Stocken geraten, und PSI verfolgt das.