0

我在 kubernetes 中运行 Jenkins 控制器。我注意到控制器已经重新启动了很多。

kgp jkmaster-0
NAME                  READY   STATUS    RESTARTS   AGE
jkmaster-0            1/1     Running   8          30m

Pod的内存分配如下

    Limits:
      memory:  2500M
    Requests:
      cpu:      300m
      memory:   1G

只要控制器处于空闲状态,我就看不到任何尖峰发生。但是,当我开始生成作业时,我注意到有尖峰,每个尖峰都会导致 aOOMError并且会发生重新启动

在此处输入图像描述

kgp jkmaster-0
NAME                  READY   STATUS      RESTARTS   AGE
jkmaster-0            0/1     OOMKilled   3          3h8m

为了进一步研究这一点,我想生成一个堆转储。所以我要做的是添加以下内容

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/srv/jenkins/

JAVA_OPTS. 我期待下一次詹金斯控制器点击时OOM,它应该生成一个带有 under/srv/jenkins/但没有的 Heapdump。知道是否有我错过的东西吗?

java_pid.hprof重启后 /srv/jenkins/ 下没有该类型的文件。

全部JAVA_OPTS

JAVA_OPTS: -Djava.awt.headless=true -XX:InitialRAMPercentage=10.0 -XX:MaxRAMPercentage=60.0 -server -XX:NativeMemoryTracking=summary -XX:+UseG1GC -XX:+ExplicitGCInvokesConcurrent -XX:+ParallelRefProcEnabled -XX:+UseStringDeduplication \
-XX:+UnlockDiagnosticVMOptions -XX:G1SummarizeRSetStatsPeriod=1 -XX:+PrintFlagsFinal -Djenkins.install.runSetupWizard=false -Dhudson.DNSMultiCast.disabled=true \
-Dhudson.slaves.NodeProvisioner.initialDelay=5000 -Dsecurerandom.source=file:/dev/urandom \
-Xlog:gc:file=/srv/jenkins/gc-%t.log -Xlog:gc*=debug -XX:+AlwaysPreTouch -XX:+DisableExplicitGC \
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/srv/jenkins/ -Dhudson.model.ParametersAction.keepUndefinedParameters=true -Dhudson.model.DownloadService.noSignatureCheck=true
4

0 回答 0