#java #multithreading #cloud #cloud-foundry
#java #многопоточность #облако #cloud-foundry
Вопрос:
Я вижу опцию App ENV для настройки «-stackThreads = 250 » с помощью калькулятора памяти в java buildpack для приложений cloud foundry. что это за стековые потоки и что они на самом деле делают. как это влияет на приложение, изменяя это значение. некоторые люди используют слова «поток стека» и «стек потоков» как взаимозаменяемые. это так или иначе (хотя я понимаю определение стека потоков)
cf set-env my-application JBP_CONFIG_OPEN_JDK_JRE ‘{ jre: { version: 11. }, memory_calculator: { stack_threads: 25 } }’
Ответ №1:
-stackThreads
является аргументом для калькулятора памяти Buildpack, а не для JVM. Это количество одновременных потоков, которые будут использоваться при оценке использования памяти из-за стеков потоков. Стек потоков — это (в широком смысле) объем памяти, выделенный стеку в каждом потоке, как установлено -Xss
параметром. В целом, общее использование памяти будет увеличено, если стек потоков больше или если запущено больше потоков.
Насколько я знаю, у самой JVM нет -stackThreads
опции, поэтому установка ее в JVM при запуске приложения не будет иметь никакого эффекта. На самом деле, это, скорее всего, будет рассматриваться как ошибка в командной строке. Я не думаю, что «поток стека» является даже значимым термином в Java.
Комментарии:
1. Это имеет смысл… я исправил qns… предполагается, что это приложение ENV, а не JAVA_OPTS. Тогда я думаю — stackThreads: 250 — это слишком много микросервисов, я считаю.