Spark : Понимание показателей исполнителя в приложении spark (JVMHeapMemory, OnHeapExecutionMemory, OnHeapStorageMemory, OnHeapUnifiedMemory)

#apache-spark

Вопрос:

Я пытаюсь понять некоторые значения метрик, связанных с памятью, о которых сообщается в метриках исполнителя от каждого исполнителя в приложении apache spark. В частности, эти

  1. JVMHeapMemory
  2. Память о предстоящем выполнении
  3. Onheapstoragemory
  4. OnHeapUnifiedMemory

Согласно документации на странице мониторинга Spark, эти показатели должны быть максимальными значениями памяти, но значение, которое я вижу в задании spark, выглядит следующим образом

21/09/25 13:25:06 ИНФОРМАЦИОННЫЕ показатели: тип=ДАТЧИК, имя=приложение_1632317519942_0618.драйвер.ИсполнитЕльская метрика.JVMHeapMemory, значение=260976800 21/09/25 13:25:06 ИНФОРМАЦИОННЫЕ показатели: тип=ДАТЧИК, имя=приложение_1632317519942_0618.драйвер.ИсполнитЕльская метрика.OnHeapExecutionMemory, значение=0 21/09/25 13:25:06 ИНФОРМАЦИОННЫЕ показатели: тип=ДАТЧИК, имя=приложение_1632317519942_0618.драйвер.ИсполнитЕльская метрика.OnHeapStorageMemory, значение=561315 21/09/25 13:25:06 ИНФОРМАЦИОННЫЕ показатели: тип=ДАТЧИК, имя=приложение_1632317519942_0618.драйвер.ИсполнитЕльская метрика.OnHeapUnifiedMemory, значение=561315

21/09/25 13:25:06 ИНФОРМАЦИОННЫЕ показатели: тип=ДАТЧИК, имя=приложение_1632317519942_0618.драйвер.ИсполнитЕльская метрика.JVMOffHeapMemory, значение=241239736 21/09/25 13:25:06 ИНФОРМАЦИОННЫЕ показатели: тип=ДАТЧИК, имя=приложение_1632317519942_0618.драйвер.ИсполнитЕльская метрика.OffHeapStorageMemory, значение=0 21/09/25 13:25:06 ИНФОРМАЦИОННЫЕ показатели: тип=ДАТЧИК, имя=приложение_1632317519942_0618.драйвер.ИсполнитЕльская метрика.Отключенная память, значение=0

В соответствии с моим пониманием JVM В памяти кучи должна быть = Память об использовании памяти Память об использовании памяти Зарезервированная память (~300 МБ) Память пользователя (0,25 * (память кучи — зарезервированная память))

Но, как вы можете видеть, объем памяти для выполнения и хранения в куче намного меньше по сравнению с общим объемом jvm в памяти кучи. И я хотел бы понять это лучше. Может кто-нибудь, пожалуйста, объяснить это?