Dieser Pod enthält die Java-App, die mit -Xms512m -Xmx1024m ausgeführt wurde, und in der Kubernetes-Bereitstellungsdatei -> request.memory = 512M, limits.memory = 1,5G.
Ich habe GC-Protokolle aktiviert und sehe diese in den Pod-Protokollen:
Code: Select all
[2020-04-29T15:41:32.051+0000] GC(1533) Phase 1: Mark live objects
[2020-04-29T15:41:32.133+0000] GC(1533) Phase 1: Mark live objects 81.782ms
[2020-04-29T15:41:32.133+0000] GC(1533) Phase 2: Compute new object addresses
[2020-04-29T15:41:32.145+0000] GC(1533) Phase 2: Compute new object addresses 11.235ms
[2020-04-29T15:41:32.145+0000] GC(1533) Phase 3: Adjust pointers
[2020-04-29T15:41:32.199+0000] GC(1533) Phase 3: Adjust pointers 54.559ms
[2020-04-29T15:41:32.199+0000] GC(1533) Phase 4: Move objects
[2020-04-29T15:41:32.222+0000] GC(1533) Phase 4: Move objects 22.406ms
[2020-04-29T15:41:32.222+0000] GC(1533) Pause Full (Allocation Failure) 510M->127M(680M) 171.359ms
[2020-04-29T15:41:32.222+0000] GC(1532) DefNew: 195639K->0K(195840K)
[2020-04-29T15:41:32.222+0000] GC(1532) Tenured: 422769K->130230K(500700K)
[2020-04-29T15:41:32.222+0000] GC(1532) Metaspace: 88938K->88938K(1130496K)
[2020-04-29T15:41:32.228+0000] GC(1532) Pause Young (Allocation Failure) 603M->127M(614M) 259.018ms
[2020-04-29T15:41:32.228+0000] GC(1532) User=0.22s Sys=0.05s Real=0.26s
Code: Select all
DefNew (young) - 0k
Tenured - 130230K
Metaspace - 88938K
Sum - 216168K
Kann jemand etwas Licht ins Dunkel bringen?
(bearbeitet)
Als der Pod zum ersten Mal gestartet und einige Minuten lang laufen gelassen wurde, wurde die Speichernutzung nur mit etwa 500 MB angezeigt. Wenn dann Anfragen eingehen, platzt er auf 900 MB bis 1 GB. Wenn dann alles verarbeitet wurde, sinkt die Speichernutzung auf dem k8s-Dashboard nicht unter 900 MB, obwohl der Heap laut GC-Protokollen in Ordnung ist.
Mobile version