So verwenden Sie Docker, um Containerressourcen zu begrenzen

So verwenden Sie Docker, um Containerressourcen zu begrenzen

Problem beim Gucken

Angenommen, der IIS-Dienst stellt auf dem Server mehrere Sites bereit. Wenn eine der Sites ein Problem hat (z. B. die CPU ist zu 100 % ausgelastet oder der Speicher voll), stürzen auch die anderen Sites auf diesem Server ab. Ähnlich verhält es sich bei der Verwendung von Containern: Dutzende von Containern können auf einem einzigen Host laufen. Obwohl die Container voneinander isoliert sind, verwenden sie denselben Kernel, dieselbe CPU, denselben Speicher, dieselbe Festplatte und andere Hardwareressourcen wie der Host. Wenn die Containerressourcen nicht eingeschränkt sind, beeinflussen sich die Container gegenseitig.

Lösung

Docker bietet Methoden zur Begrenzung von Speicher, CPU oder Festplatten-E/A, wodurch die Größe und Menge der vom Container belegten Hardwareressourcen begrenzt werden können. Wir können die Hardwareressourcen dieses Containers begrenzen, wenn wir Docker Create zum Erstellen eines Containers oder Docker Run zum Ausführen eines Containers verwenden.

Speichergrenzen

Die von Docker bereitgestellten Speicherbegrenzungsfunktionen sind wie folgt:

1. Die Speicher- und Swap-Partitionsgröße, die der Container verwenden kann.

2. Die Kernspeichergröße des Containers.

3. Auslagerungsverhalten des virtuellen Containerspeichers.

4. Weiche Begrenzung des Containerspeichers.

5. Ob Container beendet werden sollen, die zu viel Speicher belegen.

6. Priorität bei der Containervernichtung

-m, --memory Speicherlimit, das Format ist eine Zahl plus eine Einheit, die Einheit kann b, k, m, g sein. Mindestens 4M
--memory-swap Gesamtspeicherlimit + Größe der Swap-Partition. Gleiches Format wie oben. Erforderlich: -m legt die weiche Grenze für den Speicher fest. Gleiches Format wie oben --oom-kill-disable Gibt an, ob OOM-Killer das Töten von Containern verhindern soll. Standardmäßig nicht festgelegt. --oom-score-adj Die Priorität des Containers, der vom OOM-Killer getötet wird. Der Bereich liegt zwischen [-1000 und 1000], der Standardwert ist 0.
--memory-swappiness wird verwendet, um das virtuelle Speichersteuerungsverhalten des Containers festzulegen. Der Wert ist eine Ganzzahl zwischen 0 und 100. --kernel-memory Kernel-Speicherlimit. Gleiches Format wie oben, Mindestgröße ist 4M

Das Benutzerspeicherlimit dient zur Begrenzung der Größe des Speichers und der Swap-Partition, die der Container verwenden kann.
Bei der Verwendung sind zwei intuitive Regeln zu beachten:

Der Mindestparameter der Option -m, --memory beträgt 4 M.
--memory-swap ist nicht die Swap-Partition, sondern die Gesamtgröße des Speichers plus der Swap-Partition, also muss --memory-swap größer sein als -m, --memory.

CPU-Limit

Alle Optionen im Zusammenhang mit dem Docker-Run-Befehl und dem CPU-Limit lauten wie folgt:

--cpuset-cpus="" Die Menge der CPUs, die verwendet werden dürfen, der Wert kann 0-3,0,1 sein.
-c, --cpu-shares=0 CPU-Anteilsgewicht (relatives Gewicht)
cpu-period=0 begrenzt die CPU-CFS-Periode und liegt zwischen 100 ms und 1 s, d. h. [1000, 1000000]
--cpu-quota=0 Begrenzt das CPU-CFS-Kontingent, darf nicht weniger als 1 ms betragen, d. h. >= 1000
--cpuset-mems="" Ausführung auf Speicherknoten (MEMs) zulassen, nur gültig für NUMA-Systeme

Mit --cpuset-cpus werden die vCPU-Kerne festgelegt, die der Container verwenden kann. -c, --cpu-shares wird verwendet, um den relativen Anteil der CPU-Zeit festzulegen, der jedem Container zugewiesen werden kann, wenn mehrere Container um die CPU konkurrieren. --cpu-perioden und --cpu-quata werden verwendet, um die absolute Menge an CPU-Zeit festzulegen, die ein Container verwenden kann.

Dies ist das Ende dieses Artikels über die Verwendung von Docker zur Begrenzung von Containerressourcen. Weitere Informationen zu Ressourcenbeschränkungen für Docker-Container finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Docker und iptables sowie Implementierung von Netzwerkisolations- und Kommunikationsvorgängen im Bridge-Modus
  • Netzwerkmanagement und Netzwerkisolationsimplementierung von Docker-Containern
  • So isolieren Sie Benutzer in Docker-Containern
  • Docker Ändern des Docker-Speicherorts Ändern der Größenbeschränkung für Container-Images
  • Implementierung des Docker-CPU-Limits
  • So begrenzt Docker die für Container verfügbare CPU
  • So begrenzen Sie den für einen Container in Docker verfügbaren Speicher
  • Einführung in die Isolations- und Einschränkungsprinzipien von Docker

<<:  Reines js, um den Effekt eines Karussells zu erzielen

>>:  Detaillierte Erklärung zum CSS-Randkollaps

Artikel empfehlen

Lösung für MySQL-Verbindungsausnahme und Fehler 10061

MySQL ist ein relationales Datenbankverwaltungssy...

Methode der Iframe-Anpassung im webresponsiven Layout

Problem <br />Bei responsivem Layout sollte...

Implementierung der Formularübermittlung in HTML

Formularübermittlungscode 1. Quellcode-Analyse &l...

HTML- und CSS-Grundlagen (unbedingt lesen)

(1) HTML: HyperText Markup Language, die im Wesen...

Mehrere häufig verwendete Single-Page-Anwendungswebsite-Sharing

CSS3Bitte Schauen Sie sich diese Website selbst a...

Eine kurze Erläuterung zu „Group By“ in MySQL

Inhaltsverzeichnis 1. Einleitung 2. Bereiten Sie ...

Erläuterung der Schritte für Tomcat zur Unterstützung des https-Zugriffs

So ermöglichen Sie Tomcat die Unterstützung des h...

So legen Sie den Rahmen einer Webseitentabelle fest

<br />Zuvor haben wir gelernt, wie man Zelll...

So implementieren Sie Property Hijacking mit JavaScript defineProperty

Inhaltsverzeichnis Vorwort Deskriptoren Detaillie...

So verwenden Sie Font Awesome 5 in Vue-Entwicklungsprojekten

Inhaltsverzeichnis Abhängigkeiten installieren Ko...

Zusammenfassung der wichtigsten Docker-Befehle für Entwickler

Inhaltsverzeichnis Einführung in Docker Installat...

Beispiel für die Mosaikierung eines Bildes mit js

Dieser Artikel stellt hauptsächlich ein Beispiel ...

Beispielcode für die Verwendung von @media in CSS3 zur Anpassung einer Webseite

Heutzutage wird die Bildschirmauflösung von Compu...