Container-Limits
Damit Container-Host-Metriken genau sind, müssen für jeden Container Limits gesetzt werden. Das bedeutet, dass Sie Ihren Container so konfigurieren, dass ihm eine begrenzte Anzahl an CPUs und Speicher zugewiesen wird. Ohne diese Limits meldet der Container den maximal möglichen Wert dieser Metriken, was dazu führt, dass der Host beispielsweise Terabyte an verfügbarem Speicher meldet. Ein Container ohne konfiguriertes Swap oder ohne Swap-Unterstützung auf dem Host-System meldet den Wert0. Weitere Informationen dazu, wie Sie die CPU- und Speicher-Limits Ihres Containers begrenzen, finden Sie in der Dokumentation zu:
Unterstützte Metriken
Auf Systemen, die das virtuelle Dateisystem/sys/fs bereitstellen, werden die folgenden Metriken unterstützt.
| Metrik | Beschreibung |
|---|---|
| CPU-Auslastung | User und system in Prozent. Mehr zu CPU-Metriken lesen Sie in unserem Academy-Artikel. |
| Load Average | 1-Minuten-Load-Average auf dem Host. |
| Speichernutzung | Verfügbarer, freier und genutzter Speicher. Enthält auch Swap-Gesamt- und genutzten Swap. |
| Speicherplatznutzung | Prozentsatz jeder genutzten Festplatte. |
| Disk-IO | Durchsatz der von jeder Festplatte gelesenen und auf jede Festplatte geschriebenen Daten. |
| Netzwerkverkehr | Durchsatz der über jede Netzwerkschnittstelle empfangenen und gesendeten Daten. |
Über CPU-Metriken
Kurz gesagt:- AppSignal meldet dieselben Metriken wie der Befehl
docker stats, jedoch gemeldet als Durchschnitt auf Minutenbasis. - Die gemeldete CPU-Auslastung kann über 100 % liegen. 100 % entspricht einem vollen virtuellen CPU-Kern.
- Container-Limits werden empfohlen, um die verfügbaren CPU-Ressourcen ordnungsgemäß zwischen Containern auszubalancieren.
- Wenn mehrere Container auf demselben Host-System sich CPU-Ressourcen teilen, können Container, die mehr CPU verbrauchen – auch mit Container-Limits – die gemeldete CPU-Auslastung anderer Container negativ beeinflussen.
- Im Szenario, in dem Container A seine verfügbaren CPU-Kerne maximal auslastet und die anderen Container B und C bei 0 % im Leerlauf sind, wird dies als 300 % CPU-Auslastung für Container A gemeldet. Das ist die gesamte verfügbare CPU-Zeit im Container-System des Hosts.
- Wenn die drei Container alle ihre verfügbaren CPU-Kerne maximal auslasten, wird dies als 100 % CPU-Auslastung für jeden Container gemeldet, da die Ressourcen gleichmäßig unter ihnen aufgeteilt werden.