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

Доброго всем времени суток Open JDK (tomcat и war app) внутри

Docker контейнера использует только часть CPU ресурсов и работает медленно
Не подскажите как этим бороться? Может какие то параметры в JAVA_OPTS хитрые передать?

16 ответов

5 просмотров

Я не думаю, что JAVA_OPTS помогут, если контейнеру мало ресурсов выделяется

Vladimir-Samoylov Автор вопроса
FJP
Я не думаю, что JAVA_OPTS помогут, если контейнеру...

пробовал выделять от 2 vCPU до 16 vCPU ситуация не изменяется используется по прежнему только 30% от 1 vCPU --cpu-shares пробовал, внутри контейнера ресурсы отображаются корректно процессоры доступны

Vladimir Samoylov
пробовал выделять от 2 vCPU до 16 vCPU ситуация не...

https://stackoverflow.com/questions/39089850/docker-doesnt-get-100-of-the-cpu Тут пишут, что в докер десктопе какие-то дефолтные конфиги были, не твой случай?

Vladimir-Samoylov Автор вопроса
Vladimir-Samoylov Автор вопроса

java -XshowSettings:all -version https://gist.github.com/cageyv/477b62cc048dfc7c88a047c1f4cbc941 Ресурсов сколько угодно есть.. Есть аналогичный сетап без контейнеров и там дела обстоят ровно в 2 раза лучше процесс забирает 60% от CPU , но там нет возможности проводить эксперименты к сожалению

Vladimir-Samoylov Автор вопроса

Есть запущенное приложение без докера и там потребляет больше

Vladimir-Samoylov Автор вопроса
central hardware
а память как то ограничивали?

Да стандартными флагами память ограничена На старой инсталляции это Xmx , на новой пробовал и Xmx и какой то более новый XX:MaxRAMPercentage

Vladimir Samoylov
Да стандартными флагами память ограничена На старо...

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

Vladimir-Samoylov Автор вопроса
I S
дак у вас jdk15, там достаточно лимиты на контейне...

На JDK15 вчера вот и пересобрал как раз) Да там есть UseContainerSupport по дефолту включённый С ним не нужны никакие больше флаги для памяти и процессора?

Vladimir-Samoylov Автор вопроса
I S
не нужны, чтобы не уйти в OOM

Спасибо, попробую сегодня убрать , а вот это флаг ещё требуется в JDK15 XX:+UseParallelGC ? Или по дефолту jvm сможет принять более оптимальное решение? app_env_set = { CATALINA_OPTS = "-XX:InitialRAMPercentage=30 -XX:MaxRAMPercentage=100 -XX:+UseContainerSupport -XX:+UseParallelGC" CATALINA_OUT = "/dev/stdout" JAVA_OPTS = "-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom -server" }

Vladimir-Samoylov Автор вопроса

есть некоторый процесс долгий, который приложение запускает в отдельном подпроцессе без докера он выполяется 4 минуты и нагружает CPU на 60% (htop/top) внутри докера он выполняется 8 минут и нагружает CPU на 30% (htop на хостовой машине)

Vladimir-Samoylov Автор вопроса

пробовал разные варианты 2,4,8,16 результат не менялся или менялся незначительно в рамках погрешности скажем так выдавал через --cpu-shares позволяя JVM посчитать самой и через флаг XX:ActiveProcessorCount

Vladimir-Samoylov Автор вопроса

совсем не отличаются, один в один от дефолтных отличие в основном в AJP коннекторе

Vladimir-Samoylov Автор вопроса

Продолжение истории Попробовали запустить на другом типе EC2 и да результат получился другой. думаю что T3 семейство плохо подходит для сильных нагрузок на CPU если используются контейнеры. перешли на C5 и дела стали получше К сожалению совсем чистого эксперимента не вышло. Нашлась проблема связанная с самой тестовой задачей. Но в результате получилось даже быстрее чем на старом окружении, что лучше в любом случае спасибо @lex_it и @centralhardware

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

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

подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
вопрос по москвину - не понимаю вот такого вопроса похоже Сколько разных всегда завершающихся функций с типом a -> a -> b -> a -> a можно реализовать? Две функции одинаково...
Fedor
11
Слушайте, ещё такая интересная задачка. Сделан аудит действий пользователей через триггеры в базе, соответственно каждый пользователь имеет свой логин и пароль в базе. Это пре...
Сергей Бычков
11
есть тут кто-то , кто только начал изучать си? если проходите курс на степике или как-то сами изучаете, пишите, может, скооперируемся?..
Eule
25
Скажите, тут нет проблемы? IMyInterface1 = interface function GetInterface2: IInterface2; ... function TMyInterface.GetInterface2: IInterface2; begin Result := TI...
Ruslan aka DUDE
18
возможно для форматирования TimeStampZ нужен другой механизм, не?
Роман Лях (rgreat)
13
Народ, есть возможность объяснить VS Code, что некий lua-модуль стандартный и грузится по умолчанию? Т.е. хост программа добавляет этот модуль наряду с модулями string, debug ...
Sl
9
Добрый день. Абракадабра в 12-й студии ввела новый тип поля БД TSQLTimeStampOffset, использую в постгресе timestampz и вот с 12-й версии начались чудеса! До этого поля times...
Delphi Photo
9
Коллеги, здравствуйте! А можно узнать ваше мнение относительно Wolfram Mathematica vs Julia? Просто у меня стоит выбор между тем, чтобы продолжить преподавать Wolfram Mathemat...
Илья Гаража
10
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Карта сайта