Мой вопрос больше на уровне потоков Java. Но, вероятно, это может быть более общим для потоков уровня ОС.
JAVA SPECIFIC: какое значение имеет ThreadPool Tuning Size . (Формула)? Влияние на производительность и как она ведет себя под капотом, с контейнерами. (Я думаю, что могу понять наборы процессоров, но не общие ресурсы процессора, я знаю, что такое общие ресурсы процессора, просто не понял, как здесь ведет себя многопоточность).
Итак, я прочитал статью о java в контейнерах (которую я наблюдали при запуске приложений в CloudFoundary), 3 и улучшения, внесенные в JDK 10 для определения ограничений контейнеров.
В указанной статье:
Давайте кратко рассмотрим, как JVM приспосабливается к количеству процессоров/ядер, доступных на узле, на котором она работает. На самом деле существует ряд параметров, которые по умолчанию инициализируются на основе количества ядер. Таким образом, если нормальные значения по умолчанию для GC-потоков, JIT-потоков и т. д. — это общее количество доступных «ядер».
Сейчас если
number_of_cpus() будет рассчитываться на основе cpu_shares()/1024
Затем в сценарии, где, скажем, CPU-Share составляет 512. Этот расчет даст 0. (Тогда я предполагаю, что значение будет округлено до 1??). Как это работает тогда?