Да, оно будет округлено до 1 .
Реализация находится под ./hotspot/os/linux/osContainer_linux.cpp
и в основном выглядит следующим образом:
share_count = ceilf((float)share / (float)PER_CPU_SHARES);
, где PER_CPU_SHARES = 1024
и share в соответствии с вашим примером 512
.Эта функция приведет к 1
.
Я не совсем уверен, что правильно вас понял с вашими правками, но cpu-share
имеет значение, когда несколько контейнеров, работающих в одной ОС, пытаются использовать 100% ЦП.Предположим, у вас есть 3 контейнера, один имеет 1024
, два других имеют 512
cpu-share.Когда все 3 из них попытаются получить 100% процессорного времени, вот что произойдет: 50% времени уйдет на контейнер с 1024
акциями, остальные получат каждый25%
;но опять же, это только когда процессор находится на 100%
.
А теперь снова прочитайте этот JEP - он влияет только на потоки JIT / GC, а не на потоки вашего приложения;вы все равно можете создать множество потоков, как и в любой другой статье, - что бы ни говорила эта статья - она все еще действительна, контейнер или нет.