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 
Hast du auch das Problem?
Oder bestätigst du, dass das nicht normal ist? 
Aber das erscheint mir total übertrieben! 
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 
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.
- Mit dem Gladys-Container verbinden
node --expose-gc ausführen
- 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.
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 