Symptome und Geltungsbereich
- Arbeit wird schubweise langsam, obwohl CPU-Kapazität frei ist.
- Drosselungszähler der betroffenen cgroup steigen während der Arbeit.
Betroffene Umgebung
Linux-cgroup-v2-CPU-Controller und systemd-CPUQuota; Controllerdateien hängen von der aktiven Hierarchie ab.
Mögliche Ursachen
Das sind mögliche Erklärungen, keine bestätigte Diagnose. Mehrere unabhängige Fehler können gleichzeitig vorliegen.
- Endliches cpu.max oder systemd-CPUQuota kann die gesamte Ausführungszeit aller Dienstthreads begrenzen.
- Eine übergeordnete Slice kann die wirksame Grenze setzen; CPUWeight verteilt Konkurrenz und ist kein hartes Kontingent.
Sicher prüfen
Führe jeweils einen Befehl in der passenden Sitzung aus. Lies zuerst die Erklärung. Großgeschriebene Platzhalter brauchen deine Werte; Werkzeuge und Rechte unterscheiden sich je nach Distribution. Die Website zeigt Befehle an und führt sie niemals aus.
Prüfschritt 1
Ersetze example.service; keine Laufzeitwerte werden geändert.
systemctl show example.service -p ControlGroup -p CPUQuotaPerSecUSec -p CPUQuotaPeriodUSec -p CPUWeightErgebnis einordnen: Ein Kontingent von 100% begrenzt ungefähr die Gesamtzeit einer CPU, nicht einen festen Kern. Prüfe bei lokal unbegrenzten Werten die Eltern-Slices.
Prüfschritt 2
Ersetze den Pfad durch ControlGroup unter /sys/fs/cgroup bei cgroup v2; wiederhole das Lesen rund um dieselbe Last.
cat /sys/fs/cgroup/system.slice/example.service/cpu.max /sys/fs/cgroup/system.slice/example.service/cpu.statErgebnis einordnen: cpu.max nennt Budget und Periode. Steigende nr_throttled oder throttled_usec zeigen lokale Begrenzung; Elternlimits erscheinen möglicherweise nicht im Kindzähler.
Nächste Schritte nach Befund
Gemessenes CPU-Kontingent passend wählen
Wenn Drosselung und Latenz zusammenfallen und mehr CPU-Zeit vorgesehen ist, erhöhe das endliche Kontingent dieses Dienstes oder seiner begrenzenden Slice in der Konfiguration. Prüfe Nachbarlasten mit.
Vorsicht: Eine Kind-cgroup entgeht keinem strengeren Elternlimit. Notiere alte Werte und entferne nicht die Grenzen aller Dienste.
Wiederherstellung / Rücknahme: Stelle Kontingent und Periode auf derselben Hierarchieebene zurück und vergleiche gleiche Last.
Hat dir dieser Hinweis geholfen?
Lastspitzen der Anwendung reduzieren
Wenn das Kontingent beabsichtigt ist, reduziere Worker oder Batchgröße für dieses Budget. Prüfe CPUWeight bei konkurrierender Last, falls relative Bevorzugung statt harter Grenze gewünscht ist.
Vorsicht: Weniger Parallelität kann Durchsatz verringern; der Wechsel von Kontingent zu Gewicht ändert die Ressourcenisolation.
Wiederherstellung / Rücknahme: Stelle Parallelität und ursprüngliche Kontingent-/Gewichtswerte bei schlechteren Messwerten zurück.
Hat dir dieser Hinweis geholfen?
Quellen und Prüfung
Diese Anleitung basiert auf Originalquellen von Projekten oder Distributionen und wurde am genannten Datum redaktionell geprüft. Das ist eine Quellenprüfung, kein Nachweis einer auf deiner Hardware reproduzierten Lösung. Log-Beispiele sind synthetische Testdaten. Versionsabhängige Details müssen zur installierten Ausgabe passen.
- Linux kernel — cgroup v2 controllers (Projekt- oder Distributionsdokumentation)
- systemd resource control — upstream manual hosted by Debian (Projekt- oder Distributionsdokumentation)