170 похожих чатов

Товарищи, на JVM 17 насколько необходимо указывать Xmx если у

меня один процесс в контейнере?
Я не хочу страдать, я хочу вжух-вжух, поставил лимит в кубе и погнали.

Надо ли мне постоянно JAVA_OPTS менять?

28 ответов

44 просмотра

jvm давно научилась лимиты контейнера подсасывать сама

Ayrat-Hudaygulov Автор вопроса
Alexandr ∨∧‾ Emelyanov
jvm давно научилась лимиты контейнера подсасывать ...

топ, что надо отсюда удалить? -Xms64m -Xmx3g -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -XX:+ExitOnOutOfMemoryError -XX:+UseParallelGC -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=20 -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90

А в чем смысл xms без alwaysPreTouch?

Вместо xmx можно задавать MaxRAMPercentage

Ayrat-Hudaygulov Автор вопроса
Evg Resh
А в чем смысл xms без alwaysPreTouch?

прочитал, неясно зачем почему, ответов нет

Ayrat Hudaygulov
прочитал, неясно зачем почему, ответов нет

Ну, по кране мере, я оставляю xms как раз с этой идеей)

Ayrat-Hudaygulov Автор вопроса
Igor
Вместо xmx можно задавать MaxRAMPercentage

хорошая идея, кстати. Поставлю на 80 и ебись оно конём

Ну кстати я видел рекомендует 70 или 75

Ayrat-Hudaygulov Автор вопроса
Ayrat Hudaygulov
топ, что надо отсюда удалить? -Xms64m -Xmx3g -XX:...

Можешь вместо Xms/Xmx использовать -XX:MaxRAMPercentage к примеру, использую в контейнере, чтобы не менять постоянно размер Xms/Xmx, если меняю объем оперативы для контейнера

Так там больше половины флагов - настройки GC, за вас их точно никто не сделает, если стандартные не устраивают )

Ayrat-Hudaygulov Автор вопроса
Sergey Bezrukov
Так там больше половины флагов - настройки GC, за ...

я юзаю разные рантаймы и только жвм настолько конченый.

Ayrat Hudaygulov
я юзаю разные рантаймы и только жвм настолько конч...

что значит "конченый"? много чего можно настроить? А если выбросить ваши настройки GC - приложение остановится или что произойдёт?

Ayrat-Hudaygulov Автор вопроса
Sergey Bezrukov
что значит "конченый"? много чего можно настроить?...

конченый - это вместо автоматического управления всем этим JVM выдаёт мне кучу настроек. Я не хочу кучу настроек, мне хватит кнопки - "sdelay zaebis" (которую я даже нажимать не хочу, и так понятно что я хочу zaebis)

Ayrat-Hudaygulov Автор вопроса
Sergey Bezrukov
ну и уберите все настройки для начала

так убрал, падало с оом -_- Потому и добавлял

Ayrat Hudaygulov
так убрал, падало с оом -_- Потому и добавлял

А GC настройки вы осознанно добавили? Если усреднить по опыту, то примерно в процентах так 90 случаев от них ни жарко ни холодно, jvm сама внутри разберётся что когда собирать. Бывают, конечно, и исключения.

Ayrat-Hudaygulov Автор вопроса
Sergey Bezrukov
А GC настройки вы осознанно добавили? Если усредни...

нет, честно скажу, не приходя в сознание добавлял, по совету от таких же людей, которые мне выше советовали ЕЩЁ флагов добавить "иначе неправильно".

Ayrat Hudaygulov
нет, честно скажу, не приходя в сознание добавлял,...

уберите их, серьёзно, посмотрите что будет

Ayrat Hudaygulov
нет, честно скажу, не приходя в сознание добавлял,...

по умолчанию MaxRAMPercentage=25% наверное поэтому и не хватало памяти скорее всего надо было только этот параметр установить побольше значение

Ayrat Hudaygulov
конченый - это вместо автоматического управления в...

Модна ничего не настраивать. Почему вы эти флаги добавили? Вопрос в этом, только не говорите что просто скопипастили с SO

Ayrat-Hudaygulov Автор вопроса
Bohdan Panchenko
Модна ничего не настраивать. Почему вы эти флаги д...

послушал совета наших экспертов. прям как в этом чате.

Ayrat Hudaygulov
послушал совета наших экспертов. прям как в этом ч...

Я клнечно с докером пока не рабоьал. Но покс для jvm не выставлял флагов. Иногда максимальных размер хипа, что бы память секономить за счет цпу

Ayrat Hudaygulov
конченый - это вместо автоматического управления в...

так то есть кнопка "сделай мне хорошо", просто она во фреймворки встроена. Щас специально перепроверил, когда собираешь образ через спринговый bootBuildImage, он тебе во первых всё по красоте в слои расскладывает, оптимизируя размеры. А еще он интегрирован с https://paketo.io/docs/reference/java-reference/#memory-calculator . В результате, при старте приложения определяется размер доступной памяти, и все флаги автоматически ставятся (понятно, что может не идеально, но над проектом умные люди работают). Вот какие он аргументы автоматом делает для виртуалки с 1 ГБ - https://pastebin.com/9WMyb7rA

Denis Pavlyuchenko
так то есть кнопка "сделай мне хорошо", просто она...

Интересно, MaxDirectMemorySize=10M - не маловато ли? 🤔 Я бы вообще убрал, но с другой стороны, лучше оно так упадёт с нормальным сообщением, чем оно упадёт по OOM в контейнере

Vladimir Petraković
Интересно, MaxDirectMemorySize=10M - не маловато л...

ага, интересно конечно, почему 10. С ходу никаких внятных ответов не могу нагуглить. Пишут просто про дефолты, и > If not configured, 10M (in the absence of any reasonable heuristic) is used. Я не разу не видел, чтобы кто-то этот флаг руками устанавливал вообще, но конечно наверное есть и особые сценарии, когда оно надо.

Denis Pavlyuchenko
ага, интересно конечно, почему 10. С ходу никаких ...

> reasonable > 10M 😒 Если нетти по дефолту выделяет память через ByteBuffer.allocateDirect() то это вообще дичь, но я не уверен, что это так. И всё равно фигня какая-то.

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта