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

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

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

16 ответов

28 просмотров

Я не думаю, что 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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта