Nichtübereinstimmung der Prozessspeichernutzung in einem Kubernetes-Sidecar-Container

Nichtübereinstimmung der Prozessspeichernutzung in einem Kubernetes-Sidecar-Container

Ich habe einen Sidecar-Container mit den folgenden Ressourcen:

resources:
  limits:
    memory: 512Mi
  requests:
    memory: 64Mi

Beim Ausführen wird jedoch topFolgendes angezeigt:

  • Envoy und Pilot-Agent scheinen jeweils ca. 363 MB und 61 MB zu verwenden
  • Der verwendete Speicher oben beträgt 54,6 MB
  • Das Ausführen free -mergibt das Folgende; eine scheinbar unkorrelierte Antwort
$ free -m
              total        used        free      shared  buff/cache   available
Mem:         385307       47140      315018         292       23148      336021
Swap:             0           0           0

oben läuft in einem Beiwagen

Was genau passiert hier und wie viel Speicher verbrauchen diese Prozesse?

Antwort1

Diese freie und Top-Ausgabe zeigt eine Nutzung von etwa 50.000 MiB bei einem Host mit insgesamt etwa 385.000 MiB Speicher.

Container teilen sich einen Kernel, sodass Hostmetriken im Allgemeinen knotenweite Zahlen anzeigen. Auch wenn Namespaces nur Ihre Prozesse und Dateien anzeigen. Dies unterscheidet sich von einer dedizierten VM oder einem physischen Host, bei dem das Betriebssystem nur zur Unterstützung Ihrer Anwendung vorhanden ist.

Um die Anzahl pro Container zu ermitteln, müssen die Cgroup-Nummern abgefragt werden. Auf Stack Overflow finden Sie einige Möglichkeiten dazu:Überprüfen der CPU und des Speichers des Kubernetes-Pods. Viele davon erfordern einen Metrikserver.

Seien Sie vorsichtig, wenn Sie den residenten Speicher von Prozessen addieren und erwarten, dass dies der genaue Speicherverbrauch des Systems ist. Gemeinsam genutzter Speicher oder Caches sind hier nicht enthalten. Und der Kernel macht seltsame Abrechnungstricks mit dem Speicher. Ihre 3 signifikanten Ziffern sind die richtige Idee. Obwohl es im einfachen Fall einer kleinen Anzahl von Prozessen, die hauptsächlich privaten Speicher verwenden, eine gute Schätzung ist.

verwandte Informationen