Workload-Unterprovisionierung
Unterprovisionierung ermöglicht es einem Workload-bereitstellenden Dienst, weniger effektive Ressourcen für Workloads zu reservieren, als die Workloads eigentlich verbrauchen dürfen. Dies kann die Auslastung verbessern, da viele Workloads nicht kontinuierlich die gesamte CPU- oder Memory-Kapazität nutzen, die ihnen erlaubt ist.
In Private Cloud wird dies in der Installations-config.yaml konfiguriert,
die anschließend während der Installation oder des Upgrades von OMS angewendet
wird. Unterprovisionierung wird als Faktor ausgedrückt:
- Werte müssen größer als
0und höchstens1sein. 1bedeutet keine Unterprovisionierung für diese Ressource.- CPU und Memory werden separat konfiguriert.
- Limits bleiben auf dem Wert, den der Nutzer explizit angefordert hat.
- Requests werden aus dem Limit anhand des Unterprovisionierungsfaktors berechnet:
requests = ceil(limits * underprovisionFactor).
Bei Kubernetes-basierten Backends wird die Unterprovisionierung in der Regel durch Änderung des Kubernetes-Requests realisiert, nicht des Limits. Ein niedrigerer Faktor kann Kosten senken und das Bin-Packing verbessern, reduziert jedoch bei hoher Node-Auslastung auch den CPU-Anteil des Workloads und erhöht das Risiko von Memory-Eviction oder OOM-Fehlern.
Nicht jeder von einem Backend erstellte Workload muss Unterprovisionierung verwenden. Kleine Hilfs-Workloads wie Init-Jobs oder Dashboards können ihre Standard-Requests oder entsprechende backend-spezifische Standardwerte beibehalten.
Wo wird dies konfiguriert
Der genaue Ort hängt davon ab, welches Backend die Workloads bereitstellt.
Codesphere Reactives und Container-Runtime
Setze die Faktoren unter codesphere.underprovisionFactors in der config.yaml:
codesphere:
underprovisionFactors:
cpu: 0.5
memory: 0.75
Dies betrifft die Reactives und Container der Landscapes.
vCluster-Dienst intern
Codesphere stellt virtuelle Cluster mit einem Faktor bereit, der auf das globale Ressourcenkontingent (Resource Quota) des vClusters angewendet wird.
codesphere:
override:
global:
vcluster:
underprovisioningFactor: 0.5
Der Schlüssel heißt underprovisioningFactor (Singular, eine einzelne Zahl)
und gilt sowohl für CPU als auch für Memory. Der Standardwert ist 1.
PostgreSQL Managed Service Backend
Für das integrierte PostgreSQL-Backend werden die Faktoren unter
managedServiceBackends.postgres.override in der config.yaml gesetzt:
managedServiceBackends:
postgres:
override:
underprovisionFactor:
cpu: 0.5
memory: 1
Dies betrifft die PostgreSQL-Workloads, die das Backend bereitstellt.
OpenSearch Managed Service Backend
Für das OpenSearch-Backend werden die Faktoren über den pcApps-Override in
der config.yaml gesetzt:
pcApps:
applications:
ms-backend-opensearch:
valuesObject:
underprovisionFactor:
cpu: 0.5
memory: 1
Dies betrifft die OpenSearch-Node-Pool-Ressourcen, die das Backend bereitstellt, nicht jedoch die Dashboards- oder Init-Helper-Container.