Docker voll


flipponweb
Go to solution Solved by alturismo,

Recommended Posts

Hallo zusammen,

 

weiß jemand was zu tun ist, wenn der Docker Arbeitsspeicher voll ist ?

Docker startet nicht mehr, somit auch kein Zugang mit Krusader.

Ich habe schon ein paar Container über Fernzugriff in appdata gelöscht,

aber bekomme immer noch 100 % Arbeitsspeicher voll angezeigt.

Ein paar mal rebootet.

 

Hat jemand eine Idee ?

 

image.thumb.png.4f16087caed06e3d0c02c41245da4f63.png

 

image.thumb.png.91e3ad2b43573341afeeff53c147e760.png

 

Link to comment
  • Solution
7 minutes ago, flipponweb said:

weiß jemand was zu tun ist, wenn der Docker Arbeitsspeicher voll ist ?

 

das ist nicht der Arbeitsspeicher sondern dein Docker Image, Standard, 20 GB ...

 

warum passiert das, entweder du hast eine Unmenge an Container installiert (unwahrscheinlich) oder ... du hast eine falsche Config irgendwo und schreibst in das Docker Image ... das wird es wohl sein ;)

 

1/ lösche das Docker Image

2/ installiere deine Docker neu, docker, add container, oben klicken, runter scrollen bis user templates kommen, Stück für Stück einfach adden, Einstellungen werden übernommen ... dann ist erstmal wieder alles da, aber dein Problem ist damit nicht gelöst ...

3/ entweder deine Docker durchgehen und Fehler selbst entdecken und ausmerzen, oder

4/ beobachten welcher Container "wächst", auch wieder im docker Tab, unten, Contaiern Size ... und dann den Fehler ausmerzen ;)

 

image.thumb.png.9d9572971f7b1bf1fcbcd29c9934c8df.png

  • Thanks 1
Link to comment
58 minutes ago, Ford Prefect said:

...oder einfach von Image auf Docker-Verzeichnis umstellen, dann ist die Grenze der Platz auf dem Array/Cache

das ist zwar soweit korrekt, ich würde nur trotzdem mal schauen was Stand ist da er sich sonst das Docker Verzeichnis "voll" schreibt ... und je nach Regel der Quatsch mit Cache prefer greift und was auch immer dann moved wird usw usw ...

  • Like 2
Link to comment

Hallo zusammen,

 

erst mal danke für eure schnellen Antworten.

 

"..oder einfach von Image auf Docker-Verzeichnis umstellen, dann ist die Grenze der Platz auf dem Array/Cache"

 

 

Das hört sich interessant an, da mein Cage 500 GB groß ist und erst zur Hälfte voll ist. Kann ich die Größe ( Docker vDisk Größe ) da auch einstellen ?

Also "Löschen vDisk Datei" klicken, "Docker data-root" von "btrfs vDisk" auf "Verzeichnis"  ändern und  unten "Fertig" klicken ?

 

 

image.thumb.png.b78f9b81d1df38c95041d90a723165aa.png

 

Die Größe der Container habe ich bisher nicht beachtet, werde aber dann ein Auge darauf haben.

 

Sind die Container dann alle wieder mit der alten Config da, oder muss ich alles neu einrichten ?

 

 

 

Link to comment
33 minutes ago, flipponweb said:

Kann ich die Größe ( Docker vDisk Größe ) da auch einstellen ?

kannst du, bringt aber nichts da die Größe dann dein cache ist ...

 

33 minutes ago, flipponweb said:

Die Größe der Container habe ich bisher nicht beachtet, werde aber dann ein Auge darauf haben.

 

solltest du jetzt aber machen, da wenn dein cache komplett voll läuft wahrscheinlich unraid stehen bleiben wird ;) das passiert dann ... jetzt hast du die Bremse Imagegröße ... grundsätzlich ist docker Verzeichnis zu empfehlen wenn man weiß was man macht.

 

35 minutes ago, flipponweb said:

Sind die Container dann alle wieder mit der alten Config da, oder muss ich alles neu einrichten ?

 

 

14 hours ago, alturismo said:

Stück für Stück einfach adden, Einstellungen werden übernommen ... dann ist erstmal wieder alles da, aber dein Problem ist damit nicht gelöst ...

... Antwort stand schonmal da ... ja, daher user templates nehmen, Nein, du musst NICHT wieder alles neu einrichten.

Link to comment
29 minutes ago, mgutt said:

Sollte man das nicht machen, bevor er das Image löscht? Dann weiß er doch schon welcher das Problem ausgelöst hat.

ich glaube dafür ist es zu spät ;)

 

image.thumb.png.31db4ddbb571c5c8ffe1cf9034fb8ffd.png

 

ich würde auch erst wieder normal mit Image starten und dann evtl. umstellen wenn der Fehler gefunden wurde, aber egal ...

  • Haha 1
Link to comment
2 hours ago, alturismo said:

ich würde auch erst wieder normal mit Image starten und dann evtl. umstellen wenn der Fehler gefunden wurde, aber egal ...

Ja, so ist es einfach das geschilderte Problem zu verifizieren ... als Verzeichnisbaum kommt man nur mühsamer an die Infos zum benutzen Platz.

Evtl. kann man ja ctop einsetzen um das zu beobachten?

 

Link to comment

Du hast als Filesystem btrfs gewählt.
Dann schau mal, wie groß dein Ordner subvolumesim docker Verzeichnus ist. Leider schafft es Docker immer noch nicht da Ordnung zu halten und löscht nicht mehr gebrauchte subvolumes nicht. So müllt sich mit jedem neuem Container deine Disk zu. Ich habe daher auch leider wieder von btrfs auf xfs umgestellt. Damit ist dann wieder Ruhe.


Gesendet von meinem Pixel 6 Pro mit Tapatalk

Link to comment

Hallo alturismo, mgutt und Ford Prefect,

 

vielen dank für eure Beiträge. Ich habe die vDisk Datei gelöscht. Leider sind die Container dann auch weg. Das wiederherstellen mit Container hinzufügen funktioniert allerdings nicht bei allen Containern 😞

ddns habe ich mit meinen "Aufzeichnungen" hinbekommen swag mach ich noch rum. Aber bisher habe ich bei einer laufenden VM und 12 Docker eine Auslastung v. 35 %.  🙂 

Da mein Unraid seit April 2021 ohne neu aufzusetzen läuft, glaube ich, das sich die Datei mit Logs etc. "zugemüllt" hat.

 

Aber ich werde ein Auge auf die Größe der Container haben.

 

image.thumb.png.aa260c87633a7313d3923ec59da47649.png

Link to comment
8 hours ago, flipponweb said:

Das wiederherstellen mit Container hinzufügen funktioniert allerdings nicht bei allen Containern 😞

Da wird nichts "wiederhergestellt". Die Containerdateien werden einfach nur wieder aus dem Internet geladen und dann mit deinen appdata Dateien gestartet. Es gibt technisch zb keinen Unterschied zwischen dem Löschen des docker.img und dem Update eines Containers (denn dann wird der Container auch komplett neu aus dem Internet geladen).

 

Wenn also etwas nicht mehr läuft, hat das einen anderen Grund. Dazu dann die Logs des jeweiligen Containers prüfen.

Link to comment
8 hours ago, flipponweb said:

Docker eine Auslastung v. 35 %

Da brauchst du vom Prinzip nicht mehr draufschauen, weil der Balken nun 1:1 die Belegung der Cache-Disk anzeigt 😉 

 

Dementsprechend ist die Aussage von @DataCollector auch falsch. Selbst simple Dateiuploads auf den Server beeinflussen und die Belegung. Am Ende aber auch wieder nicht, denk wenn der Cache voll läuft, schreibt er ja auf das Array weiter. Daher hat man nun "unendlich" viel Platz für Docker.

 

Korrekt wäre es daher eigentlich, wenn Unraid den Balken ausblendet, wenn man auf Verzeichnis umstellt.

Link to comment
1 hour ago, mgutt said:

Dementsprechend ist die Aussage von @DataCollector auch falsch. Selbst simple Dateiuploads auf den Server beeinflussen und die Belegung. Am Ende aber auch wieder nicht, denk wenn der Cache voll läuft, schreibt er ja auf das Array weiter. Daher hat man nun "unendlich" viel Platz für Docker.

 

Nu rso zwei kleien Ergänzungen:

1. Ich bin davon ausgegangen, daß er noch nicht auf Disk/Verzeichnis umgestellt hat und mit dem Image arbeitet.

2. Sollte doch schon umgestellt worden sein: Selbst simple Uploads beeinlussen die Belegung nur, wenn diese nicht auf einem anderen Datenträger landen (also mehrere Pools Verwendung finden und das nun genutzte Dockerverzeichnis sich den Datenträger mit anderen Shares teilt).

 

Link to comment
16 hours ago, flipponweb said:

nachdem gesagt wurde, das die vDisk den ganzen Cache vereinnahmen würde, habe ich wieder den Arbeitsspeicher mit 20 GB verwendet.

Dann hast du was falsch verstanden. Wenn du Verzeichnis wählst, gibt es keine vDisk, sondern Docker schreibt seine Dateien direkt auf den Datenträger in das besagte Verzeichnis. Und es wird nicht der gesamte Cache vereinnahmt, sondern nur so viel wie die Dateien belegen. Also wenn du nicht gerade irgendwas verbockt hast, sogar weniger als bei der vDisk.

 

Beispiel von meinem Server:

 

# du -hs /mnt/cache/docker
12G     /mnt/cache/docker

 

Mein Docker-Verzeichnis belegt also "nur" 12GB statt 20GB. 

 

17 hours ago, flipponweb said:

wieder den Arbeitsspeicher mit 20 GB verwendet.

Check ich nicht. Wieso Arbeitsspeicher?!

 

Verzeichnis vs vDisk

Was ist nun besser? Natürlich Verzeichnis. Kein Stress mehr mit der Größe, weniger Belegung, weniger Overhead (weil nicht erst eine vDisk gemountet und darin Dateien geschrieben werden müssen) und es kann das Dateisystem in der vDisk nicht kaputt gehen (passiert auch gerne mal), weil es eben keine mehr gibt... Faktisch ist die vDisk also Nonsense. Um genau zu sein weiß ich nicht mal warum man bei Unraid die vDisk früher zum Standard gemacht hat. War eine blöde Idee und gehört meiner Ansicht komplett weg.

Link to comment
4 hours ago, mgutt said:

Dann hast du was falsch verstanden. Wenn du Verzeichnis wählst, gibt es keine vDisk, sondern Docker schreibt seine Dateien direkt auf den Datenträger in das besagte Verzeichnis. Und es wird nicht der gesamte Cache vereinnahmt, sondern nur so viel wie die Dateien belegen. Also wenn du nicht gerade irgendwas verbockt hast, sogar weniger als bei der vDisk.

...

Check ich nicht. Wieso Arbeitsspeicher?!

Ich hege die Vermutung, daß er da noch mit den Begrifflichkeiten Probleme hat (und ihn die Anzeige des Dockerplatzes unter Arbeitsspeicher in der GUI zusätzlich verwirrt).

 

@flipponweb

Deshalb einmal mit laienhaften Worten aufgedröselt:

 

a) Standardfall vDisk:

Einmal kann man für alle Docker Container zusammen eine vDisk nutzen. Natürlich macht es Sinn die größe der Datei der zuerwartenden Datenmenge im Voraus anzupassen. Viele Docker Container = meist etwas mehr Platzbedarf, als wenige Container). Hier macht die Anzeige in der WebGUI Sinn um im Auge haben zu können, wie voll es in dieser fixen vDisk ist. Bei mir ist diese vDisk mit 20GB angelegt. Wenn die Container darin also nur 15GB brauchen, belegt diese Datei an Ihrer Position aber weiterhin konstant 20GB auf dem Datenträger (beispielsweise 500GB SSD). 5 GB bleiben also ungenutzt in dieser Datei und sind auch nicht auf der SSD anderweitig belegbar.

 

b) Manuell konfigurierbar Share/Verzeichnis/Cache/Pool:

Dann kann man auch Docker so umstellen, daß es keinr vDisk gibt, sondern Docker seine Container und Daten direkt in ein Share/Verzeichnis/Cache/Pool schreibt.

Wenn man also die selben Container verwendet würden die genutzen 15GB Dateien Platz in dem Share/Verzeichnis/Cache/Pool belegen und man den gesamten Rest des Datenträgers (beispielsweise 500GB SSD) anderweitig belegen können (auch wenn man einen gewissen Platz immer frei lassen sollte).

 

Wenn also nun im Fall a) ein Container falsch eingestellt ist oder amok läuft müllt er (mit Logs oder so) die vDisk von 20GB zu und dann kommt es dazu, daß der Docker in der WebGUI als voll angezeigt wird (und ggf. abstürzt). Aber dennoch sind das maximal eben 20GB udn die restlichen 480GB des angenommenen Datenträgers bleiben frei und für Cahe oder was auch immer nutzbar.

 

Wenn nun im Fall b) ein Container falsch eingestellt ist oder amok läuft müllt er (mit Logs oder so) schlimmstenfalls den ganzen Datenträger mit seinen 500GB zu. Das beeinflußt auch alle anderen Sachen (VM) die diese Datenträger beispielsweise als Cache oder so nutzen.

 

Aber beide Probleme treten sowieso nur auf, wenn man einen oder meherer Container falsch einstellt und alles dort rein schreiben/müllen läßt.

Und keines der beiden Fehlerszenarien wirkt sich nennenswert/relevant auf den Armeitsspeicher/Ram des PC aus.

Link to comment
2 hours ago, DataCollector said:

Das beeinflußt auch alle anderen Sachen (VM) die diese Datenträger beispielsweise als Cache oder so nutzen.

VMs nicht, weil die ja nicht mehr nutzen können als die vDisk groß ist. Stellt man Shares auf Prefer oder Yes, hat man auch kein Problem, weil dann auf das Array ausgewichen wird. Aber klar, so oder so sollte kein Container nach Docker schreiben. Dann ist halt einfach was falsch eingestellt.

Link to comment
12 hours ago, mgutt said:

Verzeichnis vs vDisk

Was ist nun besser? Natürlich Verzeichnis. Kein Stress mehr mit der Größe, weniger Belegung, weniger Overhead (weil nicht erst eine vDisk gemountet und darin Dateien geschrieben werden müssen) und es kann das Dateisystem in der vDisk nicht kaputt gehen (passiert auch gerne mal), weil es eben keine mehr gibt... Faktisch ist die vDisk also Nonsense. Um genau zu sein weiß ich nicht mal warum man bei Unraid die vDisk früher zum Standard gemacht hat. War eine blöde Idee und gehört meiner Ansicht komplett weg.

Hab mal nen Request gemacht.

 

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.