MSSQL (SQL Server): Die Referenz-Architektur für Enterprise-Datenbanken auf Linux & Kubernetes
TL;DR Lange Zeit galt: “SQL Server braucht Windows Server.” Diese Zeiten sind vorbei. …
Die Umstellung von cgroup v1 auf cgroup v2 bringt eine verbesserte Umrechnungsformel für CPU-Anteile mit sich, die die Priorität von Kubernetes-Workloads gegenüber Systemprozessen optimiert. Die neue quadratische Formel ermöglicht eine genauere Zuordnung von CPU-Gewichtungen und verbessert die Granularität der Ressourcenverteilung innerhalb von Containern.
Die Migration von cgroup v1 zu cgroup v2 in Kubernetes hat wesentliche Änderungen in der Handhabung von CPU-Ressourcen zur Folge. Während cgroup v1 CPU-Anteile einfach durch die Zuweisung von CPU-Anforderungen in millicpu definiert, verwendet cgroup v2 ein neues Konzept von CPU-Gewichtungen. In cgroup v1 wurde ein Container, der 1 CPU anforderte, mit 1024 CPU-Anteilen (cpu.shares) bewertet. Im Gegensatz dazu wird in cgroup v2 ein Standardwert von 100 für CPU-Gewichtungen (cpu.weight) verwendet, was zu einer signifikanten Abweichung in der Priorität führt.
Die vorherige Umrechnungsformel, die cgroup v1-Anteile in cgroup v2-Gewichtungen übertrug, führte zu einer unzureichenden Priorisierung von Kubernetes-Workloads im Vergleich zu nicht-[Kubernetes]-Prozessen. Ein Container, der 1 CPU anforderte, erhielt nur ein Gewicht von etwa 39, was weniger als 40 % des Standardwerts darstellt. Diese Diskrepanz kann in ressourcenarmen Umgebungen zu Problemen führen, insbesondere wenn viele Systemprozesse außerhalb von Kubernetes laufen.
Ein weiteres Problem der alten Formel war die unzureichende Granularität bei der Zuweisung von CPU-Ressourcen. Kleinere CPU-Anfragen führten zu sehr niedrigen Gewichtungen, was die Erstellung von Sub-Cgroups innerhalb von Containern erschwerte. Beispielsweise erhielt ein Container, der 100m CPU anforderte, nur ein Gewicht von 4, was eine feingranulare Ressourcenzuteilung nahezu unmöglich machte.
Die neue Umrechnungsformel nutzt eine quadratische Funktion, um eine präzisere Zuordnung zwischen cgroup v1-Anteilen und cgroup v2-Gewichtungen zu ermöglichen. Die Formel lautet: $$cpu.weight = \lceil 10^{(L^{2}/612 + 125L/612 - 7/34)} \rceil, \text{ wobei: } L = \log_2(cpu.shares)$$ Diese Formel sorgt dafür, dass kritische Punkte wie die Standardwerte für CPU-Anteile und -Gewichtungen besser abgebildet werden. Ein Container, der 1 CPU anfordert, erhält nun ein Gewicht von 102, was näher am Standardwert von 100 liegt und somit die Prioritätsbeziehung zwischen [Kubernetes]-Workloads und Systemprozessen wiederherstellt.
Die Implementierung der neuen Umrechnungsformel erfolgt auf der OCI-Schicht, was bedeutet, dass sie nicht direkt in Kubernetes integriert ist. Die Übernahme der neuen Formel hängt von der Akzeptanz der OCI-Runtime ab. Für die gängigen Runtimes wie runc und crun ist die neue Formel ab bestimmten Versionen verfügbar.
Es ist wichtig zu beachten, dass bestehende Anwendungen oder Überwachungstools, die auf der alten Umrechnungsformel basieren, möglicherweise Anpassungen benötigen, um die neuen Gewichtungen korrekt zu berücksichtigen. Dies könnte insbesondere für Organisationen von Bedeutung sein, die auf präzise CPU-Ressourcenzuweisungen angewiesen sind.
Die Einführung der neuen Umrechnungsformel für CPU-Gewichtungen in cgroup v2 verbessert die Priorisierung von [Kubernetes]-Workloads und ermöglicht eine feinere Ressourcenverteilung. Die erfolgreiche Integration dieser Änderungen in bestehende Systeme wird entscheidend für die Optimierung der Leistung und Effizienz von Cloud-nativen Anwendungen sein.
Dieser Beitrag wurde automatisch aus dem englischsprachigen Original erstellt und auf Deutsch zusammengefasst. Wir bieten diesen Service an, um Sie bei der oft zerklüfteten und überwiegend englischsprachigen News-Situation im Bereich Cloud-Native Software, Souveräne Cloud, Kubernetes und Container-Technologien zeitnah auf Deutsch zu informieren.
TL;DR Lange Zeit galt: “SQL Server braucht Windows Server.” Diese Zeiten sind vorbei. …
Warum stabile Schnittstellen für das Ökosystem entscheidend sind Kubernetes ist heute weit mehr als …
TL;DR Ingress-NGINX wird im März 2026 eingestellt, was eine Migration zu anderen Lösungen …