Size: a a a

2021 March 16

λ

λoλdog in graalvm_ru
Виктор Вербицкий
Ну может это и на багрепорт тянет, что эвристики некорректно в k8s срабатывают
Они скорее всего как раз норм работают
источник

λ

λoλdog in graalvm_ru
Я ж говорю, Xmx не единственная память которая есть
источник

λ

λoλdog in graalvm_ru
Посчитайте треды
источник

λ

λoλdog in graalvm_ru
Посчитайте натив
источник

λ

λoλdog in graalvm_ru
Может там нетти есть
источник

MG

Max Grigoriev in graalvm_ru
вы правы что там и треды и директ память (я не в курсе есть ли она при нативном файле) но это все должно отображаться на потребляемой памяти контеейнера. плюс 137 ООМ это когда кубер убивает pod, а не когда жвм или грааль не могут выделить память и падают с джава ООМ
источник

λ

λoλdog in graalvm_ru
Max Grigoriev
вы правы что там и треды и директ память (я не в курсе есть ли она при нативном файле) но это все должно отображаться на потребляемой памяти контеейнера. плюс 137 ООМ это когда кубер убивает pod, а не когда жвм или грааль не могут выделить память и падают с джава ООМ
Да, но xmx не влияет на них)
источник

MG

Max Grigoriev in graalvm_ru
вообщем загадка
при мх в 40мб и вот таких настройках все работает стабильно
источник

MG

Max Grigoriev in graalvm_ru
а когда не было мх но был лимит в 120 то pod убивалсся
источник

d

dl in graalvm_ru
Max Grigoriev
а когда не было мх но был лимит в 120 то pod убивалсся
Мне кажется, что это примерно так работает:
1. Если нет явного mx, то он все равно есть, зависит от доступной памяти.
2. Когда mx меньше 120, запускается GC и освобождает память.
3. Когда mx, не задан, он может быть больше 120, поэтому под убивается.
источник

MG

Max Grigoriev in graalvm_ru
не понял как возможен №3 - джава умеет понимать сгрупы и от этого выставлять настройки памяти. и у меня  в логе последняя запись про ГЦ была [Incremental GC (CollectOnAllocation) 80647K->70447K, 0.0010558 secs] после чего через пол секунды контейнер был прибит.
а сейчас с мх40 и лимитов в 80мб все работает.
источник

d

dl in graalvm_ru
Max Grigoriev
не понял как возможен №3 - джава умеет понимать сгрупы и от этого выставлять настройки памяти. и у меня  в логе последняя запись про ГЦ была [Incremental GC (CollectOnAllocation) 80647K->70447K, 0.0010558 secs] после чего через пол секунды контейнер был прибит.
а сейчас с мх40 и лимитов в 80мб все работает.
Если мне память не изменяет, то умеет, если стоит -XX:+UnlockExperimentalVMOptions и -XX:+UseCGroupMemoryLimitForHeap. Они были?

UPD. Нашел статью https://developers.redhat.com/blog/2017/03/14/java-inside-docker/
Похоже, в 11 уже не нужно
источник

d

dl in graalvm_ru
Max Grigoriev
не понял как возможен №3 - джава умеет понимать сгрупы и от этого выставлять настройки памяти. и у меня  в логе последняя запись про ГЦ была [Incremental GC (CollectOnAllocation) 80647K->70447K, 0.0010558 secs] после чего через пол секунды контейнер был прибит.
а сейчас с мх40 и лимитов в 80мб все работает.
ради интереса проверь, пожалуйста, какой у тебя mx, если явно не задаешь
источник

A

Art in graalvm_ru
++
For Docker memory limits, there is a little more work for the transparent setting of a maximum Java heap. To tell the JVM to be aware of Docker memory limits in the absence of setting a maximum Java heap via -Xmx, there are two JVM command line options required, -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap. The -XX:+UnlockExperimentalVMOptions is required because in a future release transparent identification of Docker memory limits is the goal. When these two JVM command line options are used, and -Xmx is not specified, the JVM will look at the Linux cgroup configuration, which is what Docker containers use for setting memory limits, to transparently size a maximum Java heap size

Via https://blogs.oracle.com/java-platform-group/java-se-support-for-docker-cpu-and-memory-limits
источник

λ

λoλdog in graalvm_ru
эт уже старые флаги
источник

λ

λoλdog in graalvm_ru
нынче просто UseContainerSupport
источник

OS

Oleg Shelajev in graalvm_ru
Да там же джава вообще не при чем
источник

d

dl in graalvm_ru
λoλdog
эт уже старые флаги
ага, см. UPD. но вообще я не смотрел детально, какая ява у ТС, так что может быть и 8
источник

d

dl in graalvm_ru
Oleg Shelajev
Да там же джава вообще не при чем
Почему?
источник

OS

Oleg Shelajev in graalvm_ru
Нету там хотспота в контейнере
источник