Gladys RAM-Nutzung

Hallo,

Ich beobachte das schon eine Weile, aber ich stelle fest, dass Gladys fast 12 GB RAM verwendet.
Ich wollte wissen, ob das normal ist oder ob es irgendwo ein echtes Problem gibt?

Gladys läuft unter Docker auf meinem Synology NAS, das 20 GB RAM hat.

Vielen Dank im Voraus :slight_smile:

Ich bestätige auch

Hast du auch das Problem?
Oder bestätigst du, dass das nicht normal ist? :smiley:

11 GB bei mir zu Hause

Aber das erscheint mir total übertrieben! :flushed_face:
Bei mir geht es nicht über 1 GiB RAM.

Wir sind uns einig, ich verstehe nicht, warum Gladys so viel nimmt ..

@spenceur @VonOx habt ihr 200.000 Geräte oder Nutzer?
Wir werden versuchen zu prüfen, was das verursachen könnte.

Ah ah
Nicht wirklich xD

Gibt es eine Möglichkeit zu sehen, welcher Prozess so viel innerhalb eines Containers verbraucht?

Der Befehl top oder htop ermöglicht es, die laufenden Prozesse und deren Ressourcenverbrauch anzuzeigen.

Htop zeigt mir nichts an, aber top zeigt mir das hier an

Ich habe nur eine Kamera ^^’

So sieht es ohne Kamera bei mir aus.

Hättest du die restlichen Zeilen ohne ffmpeg?

Du kannst top -b -n 1 -H ausführen und alle Zeilen kopieren.
Das führt top im Bash-Modus nur einmal aus.

Entschuldigung für die verspätete Antwort :slight_smile:

DiskStation:~$ sudo docker exec -it  d7e940abe7b2 top -b -n 1 -H
Password:
Mem: 20013216K verwendet, 315520K frei, 178668K geteilt, 267568K gepuffert, 5973012K gecached
CPU:   5% usr  11% sys   0% nic  83% idle   0% io   0% irq   0% sirq
Load average: 1.83 3.86 3.78 2/3317 22026
  PID  PPID USER     STAT   VSZ %VSZ CPU %CPU COMMAND
22021     0 root     R     1712   0%   2   8% top -b -n 1 -H
   27    20 root     S    20.5g 103%   1   0% node index.js
   30    20 root     S    20.5g 103%   3   0% node index.js
   32    20 root     S    20.5g 103%   3   0% node index.js
   31    20 root     S    20.5g 103%   0   0% node index.js
   29    20 root     S    20.5g 103%   0   0% node index.js
   36    20 root     S    20.5g 103%   1   0% node index.js
   34    20 root     S    20.5g 103%   0   0% node index.js
   35    20 root     S    20.5g 103%   1   0% node index.js
   37    20 root     S    20.5g 103%   0   0% node index.js
   33    20 root     S    20.5g 103%   1   0% node index.js
   28    20 root     S    20.5g 103%   3   0% node index.js
    1     0 root     S     313m   2%   3   0% npm run start:prod
   14     0 root     S     313m   2%   3   0% {node} npm run start:prod
   11     0 root     S     313m   2%   1   0% {node} npm run start:prod
   12     0 root     S     313m   2%   0   0% {node} npm run start:prod
   13     0 root     S     313m   2%   1   0% {node} npm run start:prod
   19     0 root     S     313m   2%   3   0% npm run start:prod
   18     0 root     S     313m   2%   3   0% npm run start:prod
   15     0 root     S     313m   2%   0   0% {node} npm run start:prod
   16     0 root     S     313m   2%   3   0% npm run start:prod
   10     0 root     S     313m   2%   2   0% {node} npm run start:prod
   17     0 root     S     313m   2%   3   0% npm run start:prod
   20     1 root     S     257m   1%   3   0% node /src/server/node_modules/.bin/cross-env NODE_ENV=production node index.js
   25     1 root     S     257m   1%   3   0% node /src/server/node_modules/.bin/cross-env NODE_ENV=production node index.js
   24     1 root     S     257m   1%   3   0% node /src/server/node_modules/.bin/cross-env NODE_ENV=production node index.js
   26     1 root     S     257m   1%   1   0% node /src/server/node_modules/.bin/cross-env NODE_ENV=production node index.js
   21     1 root     S     257m   1%   1   0% node /src/server/node_modules/.bin/cross-env NODE_ENV=production node index.js
   22     1 root     S     257m   1%   3   0% node /src/server/node_modules/.bin/cross-env NODE_ENV=production node index.js
   23     1 root     S     257m   1%   3   0% node /src/server/node_modules/.bin/cross-env NODE_ENV=production node index.js

Ich habe die Zeilen, die mit der Kamera zusammenhängen, entfernt

Danke für den Befehl

Was mich stört, ist, dass dieses Tool anscheinend nur den verwendeten virtuellen Speicher anzeigt.

Lass uns etwas anderes versuchen. Dieser Befehl installiert eine grafischere und fortgeschrittenere Version von top (in deinem Gladys-Container einzugeben).

apk add -u htop ; htop -s PERCENT_MEM --tree --readonly

Hier ist, was ich bekomme:

Ich habe gerade einen viel klareren Befehl getestet.

  1. Mit dem Gladys-Container verbinden
  2. node --expose-gc ausführen
  3. Den folgenden Code einfügen (Quelle)
const formatMemoryUsage = (data) => `${Math.round(data / 1024 / 1024 * 100) / 100} MB`;

const memoryData = process.memoryUsage();

const memoryUsage = {
  rss: `${formatMemoryUsage(memoryData.rss)} -> Resident Set Size - Gesamtmenge des für die Prozessausführung zugewiesenen Speichers`,
  heapTotal: `${formatMemoryUsage(memoryData.heapTotal)} -> Gesamtgröße des zugewiesenen Heaps`,
  heapUsed: `${formatMemoryUsage(memoryData.heapUsed)} -> tatsächlich verwendeter Speicher während der Ausführung`,
  external: `${formatMemoryUsage(memoryData.external)} -> V8 externer Speicher`,
};

console.log(memoryUsage);

Ergebnis:

Jetzt bin ich mir nicht sicher, ob dies die Gladys-Prozesse berücksichtigt, das muss mit deinem Feedback bestätigt werden.

Nicht sicher :smiley:

Und für htop

Laut htop sieht es nicht so aus, als würde deine Instanz mehr RAM als ich verwenden. Bist du dir 100% sicher, dass der RAM hauptsächlich von Gladys und nicht von den Diensten deines NAS verwendet wird?
Zur Info hat der virtuelle Speicher laut einem Kommentar auf dem GitHub von Node.js nichts mit dem physischen Speicher zu tun.

Was du auf dem oberen Bild siehst, sind die Infos des Gladys-Containers.

Nicht vom NAS :slight_smile:

Also eine Idee? @lmilcent, @pierre-gilles
:S