меня один процесс в контейнере?
                  
                  
                  Я не хочу страдать, я хочу вжух-вжух, поставил лимит в кубе и погнали.
                  
                  
                  
                  
                  
                  Надо ли мне постоянно JAVA_OPTS менять?
                  
                  
                
jvm давно научилась лимиты контейнера подсасывать сама
 Ayrat
                          Hudaygulov
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Ayrat
                          Hudaygulov
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  топ, что надо отсюда удалить? -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
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Ayrat
                          Hudaygulov
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  прочитал, неясно зачем почему, ответов нет
Ну, по кране мере, я оставляю xms как раз с этой идеей)
 Ayrat
                          Hudaygulov
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Ayrat
                          Hudaygulov
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  хорошая идея, кстати. Поставлю на 80 и ебись оно конём
Ну кстати я видел рекомендует 70 или 75
 Ayrat
                          Hudaygulov
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Ayrat
                          Hudaygulov
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  типа 30 на офхип дела?
https://t.me/jvmchat/518496
Можешь вместо Xms/Xmx использовать -XX:MaxRAMPercentage к примеру, использую в контейнере, чтобы не менять постоянно размер Xms/Xmx, если меняю объем оперативы для контейнера
Так там больше половины флагов - настройки GC, за вас их точно никто не сделает, если стандартные не устраивают )
 Ayrat
                          Hudaygulov
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Ayrat
                          Hudaygulov
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  я юзаю разные рантаймы и только жвм настолько конченый.
что значит "конченый"? много чего можно настроить? А если выбросить ваши настройки GC - приложение остановится или что произойдёт?
 Ayrat
                          Hudaygulov
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Ayrat
                          Hudaygulov
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  конченый - это вместо автоматического управления всем этим JVM выдаёт мне кучу настроек. Я не хочу кучу настроек, мне хватит кнопки - "sdelay zaebis" (которую я даже нажимать не хочу, и так понятно что я хочу zaebis)
ну и уберите все настройки для начала
 Ayrat
                          Hudaygulov
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Ayrat
                          Hudaygulov
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  так убрал, падало с оом -_- Потому и добавлял
А GC настройки вы осознанно добавили? Если усреднить по опыту, то примерно в процентах так 90 случаев от них ни жарко ни холодно, jvm сама внутри разберётся что когда собирать. Бывают, конечно, и исключения.
 Ayrat
                          Hudaygulov
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Ayrat
                          Hudaygulov
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  нет, честно скажу, не приходя в сознание добавлял, по совету от таких же людей, которые мне выше советовали ЕЩЁ флагов добавить "иначе неправильно".
уберите их, серьёзно, посмотрите что будет
по умолчанию MaxRAMPercentage=25% наверное поэтому и не хватало памяти скорее всего надо было только этот параметр установить побольше значение
Модна ничего не настраивать. Почему вы эти флаги добавили? Вопрос в этом, только не говорите что просто скопипастили с SO
 Ayrat
                          Hudaygulov
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Ayrat
                          Hudaygulov
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  послушал совета наших экспертов. прям как в этом чате.
Я клнечно с докером пока не рабоьал. Но покс для jvm не выставлял флагов. Иногда максимальных размер хипа, что бы память секономить за счет цпу
так то есть кнопка "сделай мне хорошо", просто она во фреймворки встроена. Щас специально перепроверил, когда собираешь образ через спринговый bootBuildImage, он тебе во первых всё по красоте в слои расскладывает, оптимизируя размеры. А еще он интегрирован с https://paketo.io/docs/reference/java-reference/#memory-calculator . В результате, при старте приложения определяется размер доступной памяти, и все флаги автоматически ставятся (понятно, что может не идеально, но над проектом умные люди работают). Вот какие он аргументы автоматом делает для виртуалки с 1 ГБ - https://pastebin.com/9WMyb7rA
Интересно, MaxDirectMemorySize=10M - не маловато ли? 🤔 Я бы вообще убрал, но с другой стороны, лучше оно так упадёт с нормальным сообщением, чем оно упадёт по OOM в контейнере
ага, интересно конечно, почему 10. С ходу никаких внятных ответов не могу нагуглить. Пишут просто про дефолты, и > If not configured, 10M (in the absence of any reasonable heuristic) is used. Я не разу не видел, чтобы кто-то этот флаг руками устанавливал вообще, но конечно наверное есть и особые сценарии, когда оно надо.
> reasonable > 10M 😒 Если нетти по дефолту выделяет память через ByteBuffer.allocateDirect() то это вообще дичь, но я не уверен, что это так. И всё равно фигня какая-то.
Обсуждают сегодня