Class TaskExecutorProcessSpec

All Implemented Interfaces:
Serializable, ProcessMemorySpec

public class TaskExecutorProcessSpec extends CommonProcessMemorySpec<TaskExecutorFlinkMemory>
Describe the specifics of different resource dimensions of the TaskExecutor process.

A TaskExecutor's memory consists of the following components.

  • Framework Heap Memory
  • Framework Off-Heap Memory
  • Task Heap Memory
  • Task Off-Heap Memory
  • Network Memory
  • Managed Memory
  • JVM Metaspace
  • JVM Overhead
Among all the components, Framework Heap Memory and Task Heap Memory use on heap memory, while the rest use off heap memory. We use Total Process Memory to refer to all the memory components, while Total Flink Memory refering to all the components except JVM Metaspace and JVM Overhead.

The relationships of TaskExecutor memory components are shown below.

               ┌ ─ ─ Total Process Memory  ─ ─ ┐
                ┌ ─ ─ Total Flink Memory  ─ ─ ┐
               │ ┌───────────────────────────┐ │
                ││   Framework Heap Memory   ││  ─┐
               │ └───────────────────────────┘ │  │
               │ ┌───────────────────────────┐ │  │
            ┌─  ││ Framework Off-Heap Memory ││   ├─ On-Heap
            │  │ └───────────────────────────┘ │  │
            │   │┌───────────────────────────┐│   │
            │  │ │     Task Heap Memory      │ │ ─┘
            │   │└───────────────────────────┘│
            │  │ ┌───────────────────────────┐ │
            ├─  ││   Task Off-Heap Memory    ││
            │  │ └───────────────────────────┘ │
            │   │┌───────────────────────────┐│
            ├─ │ │      Network Memory       │ │
            │   │└───────────────────────────┘│
            │  │ ┌───────────────────────────┐ │
  Off-Heap ─┼─   │      Managed Memory       │
            │  ││└───────────────────────────┘││
            │   └ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┘
            │  │┌─────────────────────────────┐│
            ├─  │        JVM Metaspace        │
            │  │└─────────────────────────────┘│
            │   ┌─────────────────────────────┐
            └─ ││        JVM Overhead         ││
                └─────────────────────────────┘
               └ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┘
 
See Also:
  • Constructor Details

    • TaskExecutorProcessSpec

      @VisibleForTesting public TaskExecutorProcessSpec(org.apache.flink.api.common.resources.CPUResource cpuCores, org.apache.flink.configuration.MemorySize frameworkHeapSize, org.apache.flink.configuration.MemorySize frameworkOffHeapSize, org.apache.flink.configuration.MemorySize taskHeapSize, org.apache.flink.configuration.MemorySize taskOffHeapSize, org.apache.flink.configuration.MemorySize networkMemSize, org.apache.flink.configuration.MemorySize managedMemorySize, org.apache.flink.configuration.MemorySize jvmMetaspaceSize, org.apache.flink.configuration.MemorySize jvmOverheadSize, Collection<org.apache.flink.api.common.resources.ExternalResource> extendedResources)
    • TaskExecutorProcessSpec

      protected TaskExecutorProcessSpec(org.apache.flink.api.common.resources.CPUResource cpuCores, TaskExecutorFlinkMemory flinkMemory, JvmMetaspaceAndOverhead jvmMetaspaceAndOverhead, int numSlots, Collection<org.apache.flink.api.common.resources.ExternalResource> extendedResources)
  • Method Details

    • getCpuCores

      public org.apache.flink.api.common.resources.CPUResource getCpuCores()
    • getTaskHeapSize

      public org.apache.flink.configuration.MemorySize getTaskHeapSize()
    • getTaskOffHeapSize

      public org.apache.flink.configuration.MemorySize getTaskOffHeapSize()
    • getNetworkMemSize

      public org.apache.flink.configuration.MemorySize getNetworkMemSize()
    • getManagedMemorySize

      public org.apache.flink.configuration.MemorySize getManagedMemorySize()
    • getNumSlots

      public int getNumSlots()
    • getExtendedResources

      public Map<String,org.apache.flink.api.common.resources.ExternalResource> getExtendedResources()
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class CommonProcessMemorySpec<TaskExecutorFlinkMemory>
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class CommonProcessMemorySpec<TaskExecutorFlinkMemory>
    • toString

      public String toString()
      Overrides:
      toString in class Object