Proxmox zeigt deutlich höheren RAM-Verbrauch an als tatsächlich genutzt

y.goeltz

New Member
Aug 30, 2024
2
0
1
Frankfurt am Main, Germany
Hallo zusammen,


nach längerer Recherche im Netz habe ich zu meinem Problem leider keine wirklich zufriedenstellende Erklärung gefunden – daher hoffe ich, dass mir hier im Forum vielleicht jemand weiterhelfen kann.


Unsere Umgebung​


Wir betreiben einen 3-Node PVE-Cluster, auf dem sowohl interne VMs als auch Kundensysteme laufen.
Da wir produktive Workloads hosten, kann ich leider nicht „einfach mal testen“ oder Nodes spontan neu starten, ohne einen geplanten Wartungstermin.


Das Problem​


Mit der Zeit scheint auf allen drei Hosts der Arbeitsspeicher vollzulaufen – zumindest laut Anzeige in der Proxmox-GUI.
Zuerst dachte ich an ein Memory Leak in einem Dienst oder Prozess, aber das konnte ich ausschließen.


Nach weiteren Analysen sieht es so aus, als würde nicht Proxmox selbst, sondern das darunterliegende Debian-System (bzw. der Linux-Kernel) den RAM zunehmend für Caches und Buffers belegen, ohne diesen als „verfügbar“ anzuzeigen.


Ich wollte daher einfach einmal nachfragen:
  • Ist das Verhalten normal und anderen auch aufgefallen?
  • Oder habe ich irgendwo einen Konfigurationsfehler, der dazu führt, dass die GUI den RAM-Verbrauch falsch interpretiert?

Beispielausgabe​


Hier ein aktuelles Beispiel von einem unserer Hosts:
Bash:
goeltz.yannik@xego01:~# echo "VMs:"; ps -eo comm,rss | awk '/qemu|kvm/ {sum+=$2} END {printf "  %.1f GiB\n", sum/1024/1024}'
echo "Ceph:"; ps -eo comm,rss | awk '/ceph/ {sum+=$2} END {printf "  %.1f GiB\n", sum/1024/1024}'
echo "Total host used:"; free -h
VMs:
  83.9 GiB
Ceph:
  9.4 GiB
Total host used:
               total        used        free      shared  buff/cache   available
Mem:           503Gi       366Gi        43Gi       181Mi        98Gi       136Gi
Swap:             0B          0B          0B
goeltz.yannik@xego01:~#

Und hier nun meine Summary Seite der Node:
1759959313735.png


Die tatsächliche Auslastung durch VMs und Ceph liegt also bei rund 93 GiB, während Proxmox in der GUI über 360 GiB genutzt anzeigt.

Wäre der Unterschied nur ein paar Prozent, wäre das kein Thema – aber fast 400 GiB „belegter RAM“, obwohl effektiv nur rund 100 GiB genutzt werden, wirkt auf mich etwas merkwürdig.

Hat jemand ähnliche Beobachtungen gemacht oder eine Idee, wie man die Anzeige im Proxmox-GUI realitätsnäher gestalten kann?


Vielen Dank schon einmal für jede Rückmeldung! ;)
Beste Grüße
Yannik
 
Prüfe mal top -co%MEM. free -h zeigt den Arbeitsspeicher ja ebenfalls als Benutzt an. Nur 100G sind Cache.
 
Okay, habe ich nun ausgeführt:

Bash:
goeltz.yannik@xego01:~# free -h
               total        used        free      shared  buff/cache   available
Mem:           503Gi       358Gi       134Gi       159Mi        14Gi       144Gi
Swap:             0B          0B          0B
goeltz.yannik@xego01:~#

Code:
top - 07:11:02 up 36 days, 20:42, 16 users,  load average: 1.80, 2.00, 1.97
Tasks: 845 total,   1 running, 844 sleeping,   0 stopped,   0 zombie
%Cpu(s):  4.2 us,  4.2 sy,  0.0 ni, 91.6 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem : 515659.3 total, 137620.7 free, 367475.1 used,  14846.9 buff/cache     
MiB Swap:      0.0 total,      0.0 free,      0.0 used. 148184.3 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                               
3748040 root      20   0   20.1g  16.2g  32060 S   6.6   3.2     31,18 /usr/bin/kvm -id 153 -name
  10480 root      20   0   15.0g  12.1g  20172 S   5.3   2.4     92,58 /usr/bin/kvm -id 138 -name 
   8799 root      20   0 9864.8m   6.0g  23852 S   1.7   1.2     42,24 /usr/bin/kvm -id 109 -name
   9129 root      20   0 9790.3m   6.0g  23984 S   1.3   1.2     34,23 /usr/bin/kvm -id 110 -name
 324351 root      20   0 8049448   4.2g  31956 S   3.3   0.8 359:30.88 /usr/bin/kvm -id 155 -name
1557423 root      20   0 9785.1m   4.2g  24916 S 101.7   0.8     5w+1d /usr/bin/kvm -id 128 -name
1559925 root      20   0 7667856   4.2g  25024 S   2.0   0.8     40,12 /usr/bin/kvm -id 135 -name
1934771 root      20   0 7553400   4.2g  24608 S   2.6   0.8     21,36 /usr/bin/kvm -id 147 -name
3605835 root      20   0 7111032   4.1g  29120 S   3.0   0.8 128:43.92 /usr/bin/kvm -id 157 -name
3748753 root      20   0 6212788   4.1g  25788 S   4.3   0.8     14,39 /usr/bin/kvm -id 154 -name
   9592 root      20   0 7839660   4.0g  22956 S   0.7   0.8     16,12 /usr/bin/kvm -id 115 -name
   9593 root      20   0   11.1g   2.9g  23564 S   0.7   0.6     15,04 /usr/bin/kvm -id 112 -name
   2940 ceph      20   0 4945596   2.9g  25384 S   3.3   0.6     32,57 /usr/bin/ceph-osd -f --cluster ceph --id 1 --setuser+
   2939 ceph      20   0 4829520   2.6g  24252 S   3.3   0.5     34,44 /usr/bin/ceph-osd -f --cluster ceph --id 0 --setuser+
   2941 ceph      20   0 4581528   2.4g  23824 S   2.6   0.5     25,24 /usr/bin/ceph-osd -f --cluster ceph --id 2 --setuser+
1094716 root      20   0 7679608   1.5g  29608 S   2.6   0.3      6,44 /usr/bin/kvm -id 150 -name
 114973 root      20   0   10.6g   1.5g  28476 S  12.3   0.3  12:38.06 /usr/bin/kvm -id 107 -name
   2347 ceph      20   0 2172236   1.2g  28292 S   1.0   0.2      7,00 /usr/bin/ceph-mgr -f --cluster ceph --id xego01 --se+
   2348 ceph      20   0  792828 250704  18168 S   1.0   0.0      7,01 /usr/bin/ceph-mon -f --cluster ceph --id xego01 --se+
   2352 root      rt   0  596692 204264  69784 S   1.3   0.0     12,14 /usr/sbin/corosync -f                                 
   6296 www-data  20   0  217828 169280  24428 S   0.0   0.0   1:10.36 pveproxy                                             
   2789 root      20   0  216572 168256  24356 S   0.0   0.0   0:41.81 pvedaemon                                             
 236532 www-data  20   0  237500 166860  10976 S   0.0   0.0   0:03.86 pveproxy worker                                       
 232126 www-data  20   0  236840 165948  10660 S   0.0   0.0   0:04.96 pveproxy worker                                       
 127807 root      20   0  232004 163936  13104 S   0.0   0.0   0:06.24 pvedaemon worker                                     
 234954 www-data  20   0  234444 163908  11056 S   0.3   0.0   0:04.22 pveproxy worker                                       
 127806 root      20   0  231396 163088  13024 S   0.0   0.0   0:06.12 pvedaemon worker                                     
 127805 root      20   0  231440 162192  12384 S   0.0   0.0   0:06.42 pvedaemon worker                                     
 493037 root      20   0  231440 154484   3388 S   0.0   0.0   0:00.00 task UPID:xego01:000785ED:12FB8FD6:68E74337:vncshell+
   2606 root      20   0  198700 150052  23504 S   0.0   0.0     28,01 pvestatd                                             
   6317 root      20   0  198964 143136  24092 S   0.0   0.0   4:36.50 pvescheduler                                         
 128130 root      20   0  203776 121292   4780 S   0.0   0.0   0:27.64 pve-ha-crm                                           
 128079 root      20   0  202572 119472   3936 S   0.0   0.0   2:27.69 pve-ha-lrm                                           
   2572 root      20   0  175836 105936   3908 S   0.0   0.0 148:21.57 pve-firewall                                         
1554009 root      20   0  152176 103848 102824 S   0.0   0.0   5:05.82 /lib/systemd/systemd-journald                         
1553983 root      20   0  131416  91032  90264 S   0.0   0.0   5:39.72 /lib/systemd/systemd-journald                         
1554499 _rpc      20   0 1350072  86184   9652 S   0.0   0.0   4:08.84 /usr/sbin/mariadbd                                   
   1976 root      20   0 1100912  75152  53924 S   0.0   0.0      6,28 /usr/bin/pmxcfs                                       
1555584 root      20   0 1322952  72208  20920 S   0.0   0.0   4:28.72 node --abort_on_uncaught_exception --max_old_space_s+
   6305 www-data  20   0   91332  64680  13736 S   0.0   0.0   0:48.36 spiceproxy                                           
 165004 www-data  20   0   91464  54480   3444 S   0.0   0.0   0:00.84 spiceproxy worker

Hab die VM Namen mal wegen Datenschutz ersetzt ;-)
 
Hmm. Das ist in der Tat seltsam. Ich nehme mal an, dass der RAM irgendwo Kernel seitig benutzt. Wird auf dem Host auch ZFS benutzt? Ich würde gerne mal ein Bild von dem Memory Usage Diagram in node > Summary und die Ausgabe von arc_summary -s arc sehen. cat /proc/meminfo könnte vielleicht für die Speicher Experten hier hilfreich sein.
 
Last edited: