Dell NativeEdge: Problema di prestazioni nella distribuzione di Blueprint
Summary: Il deployment del blueprint richiede più tempo del previsto e ottiene un maggiore utilizzo della CPU e un problema di prestazioni su pod Fluent Bit. Questo articolo spiega come ottimizzare le prestazioni o risolvere il problema per aumentare il tempo di elaborazione complessivo del blueprint. ...
Symptoms
Durante la distribuzione del progetto, il pod Fluent Bit sperimenta un utilizzo elevato della CPU, avvicinandosi al limite della CPU definito. Questo utilizzo elevato può rallentare il processo complessivo di deployment del blueprint.
kubectl top po -A --containers | grep fluent
NAMESPACE POD NAME CONTAINER NAME CPU (cores) MEMORY (bytes)
hzp fluentbit-btz2g fluentbit 999m 43Mi
CPU Usage: 999m means the container is using 999 millicores, which is nearly 1 full CPU core
kubectl top, è necessario installare il server delle metriche.
Cause
La root cause di questo problema è l'utilizzo della CPU nel pod Fluent Bit, incluso il limite di risorse non impostato correttamente.
Resolution
È possibile ottimizzare il limite della CPU in base alla disponibilità e al carico delle risorse. Aumentare il limite di CPU in Daemonset un po' fluente. Il pod Fluent bit è controllato da Deamon set quindi non è possibile modificare direttamente il pod ed è necessario modificare il valore limite della CPU in Fluent bit Daemonset.
kubectl edit daemonset fluentbit -n hzp
spec:
containers:
- env:
- name: AWS_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
key: AWS_ACCESS_KEY_ID
name: eo-management-seaweedfs-s3-secret
- name: AWS_SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
key: AWS_SECRET_ACCESS_KEY
name: eo-management-seaweedfs-s3-secret
- name: K8S_NODE_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
- name: FLUENT_FOWARD_HOST
value: localhost
- name: FLUENT_FOWARD_PORT
value: "80"
image: harbor-dell.default.svc.cluster.local/renbaobabga/fluent/fluent-bit:3.2.6
imagePullPolicy: IfNotPresent
name: fluentbit
ports:
- containerPort: 8080
protocol: TCP
resources:
limits:
cpu: "1" >> change it to number depends on your env load and resource allocation
CPU: La modifica di "1" in numero dipende dal carico dell'ambiente e dall'allocazione delle risorse.
Verificare la modifica del limite di CPU eseguendo kubectl describe po fluentbit-btz2g -n hzp
Verificare l'utilizzo della CPU eseguendo kubectl top po -A --containers | grep fluent