Wie finde ich heraus, was die übermäßige CPU-Auslastung in der Google Container Engine verursacht?

Wie finde ich heraus, was die übermäßige CPU-Auslastung in der Google Container Engine verursacht?

Ich habe einen Einzelknotencluster in der Container-Engine, der im Leerlauf, wie auf dem Überwachungs-Dashboard zu sehen ist, bei etwa 40 % CPU-Auslastung liegt.

Wenn ich durch die Überwachung klicke, liegen alle Pods bei 0 % CPU.

Wenn ich mich per SSH mit der Instanz verbinde, sehe ich, dass Docker, Kubelet und Heapster die Hauptschuldigen sind, aber ich verstehe nicht, was sie tun.

Wenn ich in die Protokolle schaue, sehe ich Zeilen wie die folgenden, die viele Male pro Sekunde wiederholt werden. Ich vermute, das hängt damit zusammen.

gke-rogue-dev-7248e467-node-9hvh 2015-10-13 19:50:55.000 time="2015-10-13T23:50:55Z" level=info msg="-job containers() = OK (0)"
gke-rogue-dev-7248e467-node-9hvh 2015-10-13 19:50:55.000 time="2015-10-13T23:50:55Z" level=info msg="+job containers()"
gke-rogue-dev-7248e467-node-9hvh 2015-10-13 19:50:55.000 time="2015-10-13T23:50:55Z" level=info msg="GET /containers/json"

Was sollte mein nächster Schritt sein, um herauszufinden, warum dies geschieht?

Antwort1

Ich stand vor kurzem vor der gleichen Frage: https://serverfault.com/q/728211/310585

Die Antwort auf die Frage „Welche Arbeit leisten sie?“ lautet „Protokollierung und Überwachung“.

Um diesen Mehraufwand zu vermeiden, müssen Sie diese Funktionen beim Erstellen des Clusters einfach deaktivieren. In der Entwicklerkonsole gibt es dafür Kontrollkästchen. Fügen Sie in der CLI die Optionen --no-enable-cloud-logging --no-enable-cloud-monitoringzum gcloud container clusters createBefehl hinzu.

verwandte Informationen