Модуль Kubernetes помечен как OOMKilled

Под Kubernetes прекращает работу и помечается как OOMKilled. Ниже приведен мой yaml-файл cronjob:

      kind: CronJob
metadata:
name: test-cron
spec:
schedule: "30 2 1 * *"
concurrencyPolicy: Forbid
jobTemplate:
  spec:
    backoffLimit: 1
    template:
      spec:
        containers:
          - name: test-container
            image: <image>
            resources:
              limits:
                memory: 10240Mi
                cpu: 4000m
                ephemeral-storage: 2Gi
              requests:
                memory: 10240Mi
                cpu: 4000m
                ephemeral-storage: 2Gi
            args:
              - java
              - -cp
              - /jars/*
              - -Xmx9g
              - -Xms9g
              - -XX:+UnlockCommercialFeatures
              - -XX:+FlightRecorder
              - -Dcom.sun.management.jmxremote
              - -Dcom.sun.management.jmxremote.port=9002
              - -Dcom.sun.management.jmxremote.authenticate=false
              - -Dcom.sun.management.jmxremote.ssl=false
              - com.test.app.TestApplication
        restartPolicy: Never

Я не получаю OutOfMemoryError в своем Java-приложении. Одной из причин может быть то, что pod использует больше памяти, чем предел, указанный в yaml. Но как это возможно, потому что набор Xmx равен 9 ГБ, и если использование кучи пытается превысить 9 ГБ, мое приложение должно выдавать ошибку OOM.

Одна вещь, которую я пытался сделать, это увеличить запрос памяти модуля и ограничить его до 15 ГБ, в основном теперь есть большая разница между запросом / лимитом памяти Xmx и модуля. На этот раз мой модуль прошел успешно. Почему это сработало?

0 ответов

Другие вопросы по тегам