So begrenzen Sie die Ressourcen eines Docker-Containers unter Ubuntu 18.04

Wenn Sie darüber nachdenken, Ihre Web-Apps in Docker-Containern auszuführen, oder sich bereits an die Technologie gewöhnt haben, sollten Sie sich um einen der wichtigsten Aspekte kümmern, nämlich wie viele Ressourcen des Hosts Ihre Container verbrauchen.

Standardmäßig gibt es keine Begrenzung dafür, wie viel Speicher oder CPU ein Container verwenden kann. Es kann so viel verwenden, wie der Kernel-Scheduler des Hosts zulässt. Es ist wichtig, dass ein laufender Container nicht zu viel Arbeitsspeicher oder CPU des Host-Computers beanspruchen darf. Wenn der Kernel feststellt, dass nur noch sehr wenig freier Speicher vorhanden ist, löst er eine „ Out of Memory Exception“ aus  und beginnt, Prozesse abzubrechen. Dies kann in einigen Fällen zum Herunterfahren des gesamten Systems führen.

Um diese Umstände zu vermeiden, sollten Sie immer Tests für Ihre Anwendung durchführen und die Menge der erforderlichen Ressourcen ermitteln und dann die Container so begrenzen, dass sie eine angemessene Menge an Ressourcen verbrauchen.

Konfigurieren von Ubuntu 18.04 für die Verwendung der Docker-Funktion zur Ressourcenbeschränkung

Also lasst uns anfangen. Zunächst sollten Sie prüfen, ob Ihr Kernel diese Funktionen zulässt. Dazu müssen Sie den folgenden Befehl ausführen.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ sudo Docker-Info
$ sudo docker info
$ sudo docker info

Wenn am Ende der Ausgabe die folgende Warnung angezeigt wird, müssen Sie einige Änderungen an den Systemdateien vornehmen.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
WARNUNG: Noswaplimitsupport
WARNING: Noswaplimitsupport
WARNING: Noswaplimitsupport

Befolgen Sie in diesem Fall die folgenden Schritte unter Ubuntu 18.04

  1. Melden Sie sich als Benutzer mit Sudo-Berechtigungen beim Ubuntu-Host an.
  1. Bearbeiten Sie die Datei /etc/default/grub  und fügen Sie die folgende Zeile hinzu.
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
GRUB_CMDLINE_LINUX= „cgroup_enable=memory swapaccount=1“
GRUB_CMDLINE_LINUX= »cgroup_enable=memory swapaccount=1″
GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"
  1. Speichern und schließen Sie die Datei, nachdem Sie die obige Zeile hinzugefügt haben. Sie müssen außerdem GRUB mit dem folgenden Befehl aktualisieren.
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ sudo update-grub
$ sudo update-grub
$ sudo update-grub

Änderungen werden wirksam, wenn das System neu gestartet wird. Bestätigen Sie, dass die Änderungen wirksam wurden, indem Sie den folgenden Befehl erneut ausführen

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ sudo dockerinfo
$ sudo dockerinfo
$ sudo dockerinfo

Wenn Sie die Warnung nicht erneut sehen, können Sie loslegen.

Nun gibt es zwei Arten wichtiger Ressourcen, um die wir uns kümmern müssen.

  1. Erinnerung
  2. CPU

Beschränken des Speicherzugriffs eines Containers

Beim Starten eines Containers mit dem Docker-Run -Befehl können wir verschiedene Optionen angeben. Nachfolgend finden Sie die Beispiele.

Um die Speichernutzung eines Containers zu begrenzen, verwenden Sie die Option –memory . Es wird eine positive ganze Zahl benötigt, gefolgt vom Suffix b, k, m, g . Mit dem folgenden Befehl wird ein Ubuntu-Container mit der Einschränkung ausgeführt, dass nicht mehr als 1 Gigabyte Speicher verwendet werden dürfen.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ sudo docker run -it –memory=“1g“ ubuntu /bin/bash
$ sudo docker run -it –memory=”1g” ubuntu /bin/bash
$ sudo docker run -it --memory=”1g” ubuntu /bin/bash

Um die Nutzung der Speicherauslagerung durch einen Container auf die Festplatte einzuschränken, verwenden Sie die Option –memory-swap . Es wird auch eine positive ganze Zahl gefolgt vom Suffix b, k, m, g akzeptiert . Im folgenden Fall darf der Container verwendet werden

1 Gigabyte Nicht-Swap-Speicher und 1 Gigabyte Swap-Speicher. Die Gesamtmenge des für einen Container zulässigen Swap-Speichers ist die Differenz von –memory-swap und –memory (2g – 1g). Wenn Sie nicht möchten, dass Ihr Container Swap-Speicher verwendet, setzen Sie sowohl –memory als auch –memory-swap auf gleiche Werte.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ sudo docker run -it –memory=“1g“ –memory-swap=“2g“ ubuntu /bin/bash
$ sudo docker run -it –memory=”1g” –memory-swap=”2g” ubuntu /bin/bash
$ sudo docker run -it --memory=”1g” --memory-swap=”2g” ubuntu /bin/bash

Falls Docker erkennt, dass auf dem Host-Rechner wenig Arbeitsspeicher vorhanden ist und Sie –memory-reservation festgelegt haben , hat sein Wert Vorrang vor –memory . Wenn Sie jedoch –memory nicht festgelegt haben  , wird die Speichernutzung des Containers nicht eingeschränkt. Es wird nur wirksam, wenn wenig Speicher erkannt wird. Es ist eine Art sanfte Einschränkung.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ sudo docker run -it –memory=“1g“ –memory-reservation=“512m“ ubuntu /bin/bash
$ sudo docker run -it –memory=”1g” –memory-reservation=”512m” ubuntu /bin/bash
$ sudo docker run -it --memory=”1g” --memory-reservation=”512m” ubuntu /bin/bash

Begrenzen der CPU-Auslastung eines Containers

Um die CPU-Zeit eines Containers zu begrenzen, verwenden Sie die Option –cpus . Die Einstellung auf „.5“ bedeutet 50.000 Mikrosekunden CPU-Zeit.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ sudo docker run -it –cpus= « .5 » ubuntu /bin/bash
$ sudo docker run -it –cpus= ».5″ ubuntu /bin/bash
$ sudo docker run -it --cpus=".5" ubuntu /bin/bash

Um die CPU-Anteile eines Containers zu begrenzen, verwenden Sie die Option –cpus-shares . Standardmäßig ist es 1024 . Erhöhen oder verringern Sie den Wert, damit ein Container einen größeren oder kleineren Teil der CPU-Zyklen der Hostmaschine nutzen kann. Dies ist nützlich, wenn die CPU-Zyklen durch den Host-Computer eingeschränkt werden. Andernfalls können Container so viele CPU-Zyklen verwenden, wie sie benötigen. Auch hier handelt es sich um eine Art Softlimit.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ sudo docker run -it –cpus-shares= « 512 » ubuntu /bin/bash
$ sudo docker run -it –cpus-shares= »512″ ubuntu /bin/bash
$ sudo docker run -it --cpus-shares="512" ubuntu /bin/bash

Abschluss

Die Begrenzung der Ressourcen eines Containers hängt stark von der Kernelkonfiguration des Hostcomputers ab. Obwohl es sehr wichtig ist, die Anforderungen Ihres Containers zu kennen und diese entsprechend einzuschränken, sollten Sie auch mit der Umgebung der Host-Maschinen vertraut sein, in diesem Fall Ubuntu 18.04. Führen Sie immer mehrere Tests für Ihre Apps durch, um eine gute Vorstellung von den Ressourcenanforderungen zu erhalten. Durch den sorgfältigen Umgang mit Ressourcen können viele Kosten eingespart werden.

Sie können Statistiken für Ihre Docker-Container im laufenden Zustand anzeigen, indem Sie den Befehl „docker stats“ ausführen , indem Sie einen oder mehrere Containernamen angeben und die von Ihnen festgelegten Grenzwerte und Konfigurationen überprüfen.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ sudo Docker-Statistiken Ubuntu
$ sudo docker stats ubuntu
$ sudo docker stats ubuntu

Schauen Sie sich diese Top 3 der besten Webhosting-Dienste an

Hostinger
4.6

2.435 Nutzerbewertungen

2,99 $ /Monat
Startpreis

Besuchen Sie Hostinger

Bewertung basierend auf Expertenbewertung
  • Benutzerfreundlich
    4.7
  • Unterstützung
    4.7
  • Merkmale
    4.8
  • Zuverlässigkeit
    4.8
  • Preisgestaltung
    4.7
IONOS
4,0

382 Benutzerbewertungen

1,00 $ /Monat
Startpreis

Besuchen Sie IONOS

Bewertung basierend auf Expertenbewertung
  • Benutzerfreundlich
    4.5
  • Unterstützung
    4,0
  • Merkmale
    4.5
  • Zuverlässigkeit
    4.5
  • Preisgestaltung
    4.3
Ultahost
4.9

725 Benutzerbewertungen

2,90 $ /Monat
Startpreis

Besuchen Sie Ultahost

Bewertung basierend auf Expertenbewertung
  • Benutzerfreundlich
    4.3
  • Unterstützung
    4.8
  • Merkmale
    4.5
  • Zuverlässigkeit
    4,0
  • Preisgestaltung
    4.8
  • Klicken Sie auf diesen Link, um neue Informationen zum besten Website-Hosting zu erhalten .