Docker Container RAM begrenzen

Status
Für weitere Antworten geschlossen.

unrealSpeedy

Benutzer
Mitglied seit
30. Mrz 2016
Beiträge
95
Punkte für Reaktionen
13
Punkte
8
Hallo zusammen,

vorweg: Ich bin von meiner neuen DS916+ und den Möglichkeiten des Virtual Machine Managers und von Docker begeistert - echt genial und performant.
Ein kleines Problemchen, habe ich nun aber schon:
Ich habe nun einen Docker Container und mehrere virtuelle Maschinen.
Der Docker Container reserviert sich automatisch scheinbar 2GB des RAM, dadurch habe ich aktuell keine Möglichkeit mehr zusätzliche virtuelle Maschinen im VMM zu starten :/
Dabei benötigt der Docker Container (DSM) nur knapp 250MB RAM.

Kann man irgendwie erreichen, dass sich ein Docker Container auf der Diskstation weniger RAM reserviert (ist ja so Verschwendung)?

Beste Grüße
unrealSpeedy
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.476
Punkte für Reaktionen
359
Punkte
103
Beim starten eines Containers aus einem Image kann man im Wizzard einen Speichergrenzwert setzen.

Ansonsten verwendet ein Container immer exakt so viel RAM, wie die Prozesse benötigen die ausgeführt werden.
Bei mir wird der Verbrauch in der Docker UI auch immer höher angezeigt, als die tatsächlichen Prozesse in Summe belegen.

Docker-Container sind nichts anderes als Isoliert ausgeführte Prozesse auf dem Host. Ein Container hat dabei nur zugriff auf das, was durch die Isolation erlaubt ist.
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.137
Punkte für Reaktionen
898
Punkte
424
Das hängt dann aber vom Container ab, habe auch welche die deutlich weniger als 2GB fressen.
Wenn du den Container anhälst und dann auf bearbeiten/edit gehst kannst du Resourcen-Limitierungen setzen, auch RAM betreffend.
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.476
Punkte für Reaktionen
359
Punkte
103
Ein Docker Image kann Docker-seitig weder CPU noch RAM Vorgaben enthalten. Das Dockerfile-Format sieht schlichtweg keine Parameter dafür vor ->siehe: https://docs.docker.com/engine/reference/builder/

Wenn man beim Starten eines Container ("docker run" über die Shell oder verwenden des Wizzards in Docker UI) keine RAM Limitierung festlegt, wird immer genau so viel RAM verwendet, wie tatsächlich von den Prozessen benutzt wird. Es wird kein Arbeitsspeicher reserviert. Das ist einer der Punkte, der Docker so viel ressourcen schonender macht als VM's.

Dedizierte VM's würde ich immer nur dann einsetzen, wenn es absolut nicht anders geht. VM's gehen nun mal nicht zimplerlich mit Ressourcen um, außer die Virtualisierungsplattform kann neben dem CPU-Takt auch den RAM über Balooning auf das reduzieren was tatsächlich benutzt wird, und selbst dann ist es immer noch verschwenderisch im Vergleich zu Docker: jede VM läd einen eigenen Kernel und diverse Services, statt wie Docker-Container den bereits im Hauptspeicher befindlichen Kernel mitzuverwenden und nur minimal/keine Services zu laden.
 

unrealSpeedy

Benutzer
Mitglied seit
30. Mrz 2016
Beiträge
95
Punkte für Reaktionen
13
Punkte
8
Vielen lieben Dank für eure Antworten!

Bin nun ein ganzes Stück schlauer ;)
Man kann die Ressourcenbegrenzung in der Tat über das Userinterface einstellen und dort auch den RAM begrenzen. Das war mir nicht aufgefallen, da das nur bei "Contaienrn" geht, nicht aber bei DockerDSM-Instanzen und darum geht es bei mit (sorry, hätte ich erwähnen sollen). Hier ist soeine Beschränkung nicht möglich.

Trotzdem haben mich eure Antworten weiter gebracht, das Hauptproblem des RAMs war nicht der laufende Docker-Container mit DSM, sondern ein gewisser Overhead bei bestehenden VMs aus dem Virtual Machine Manager und vor allem ein laufender Komplettscan vom Antivirenscanner :p

Ich werde nun für die folgende Nutzung Docker-Container aufgrund des geringeren RAM-Konsums präferieren und VMs (wo der RAM direkt reserviert wird) nur für Windows-basierte Maschinen verwenden, die mit Docker ja ohnehin nicht funktionieren können.

Beste Grüße und vielen Dank
unrealSpeedy
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat