#apache-spark
#apache-spark
Вопрос:
Я пытаюсь понять, в порядке ли наша конфигурация памяти или мы чрезмерно выделяем ресурсы в нашем исполнителе, но я не могу понять, как получить использование памяти. Обратите внимание, что у меня есть ограничение на получение информации через Spark REST API.
Что я могу увидеть, если я извлеку данные для исполнителя (используя http://host:4072/api/v1/applications/app-20201109081013-5073/allexecutors ) is (обратите внимание, что я удалил некоторые данные для ясности):
{
"id" : "0",
"hostPort" : "",
"isActive" : true,
"memoryUsed" : 50515998177,
"diskUsed" : 0,
"maxMemory" : 10119177830,
"addTime" : "2020-11-09T08:10:15.933GMT",
"memoryMetrics" : {
"usedOnHeapStorageMemory" : 50515998177,
"usedOffHeapStorageMemory" : 0,
"totalOnHeapStorageMemory" : 10119177830,
"totalOffHeapStorageMemory" : 0
}
Я могу понять maxMemory
, что это в основном выделенная память (10 ГБ из 16 ГБ из-за разделения области памяти)… но я озадачен 50 ГБ, которые я мог видеть как memoryUsed
.
Похоже, это сумма памяти хранилища, используемой с момента запуска, поскольку она постоянно растет…
Та же информация отображается на вкладке Executors в Spark UI.
Итак, возникает вопрос: есть ли способ получить текущую используемую память хранилища и, что не менее важно, то же самое для памяти выполнения?
Большое вам спасибо