Class ProcessMemoryUtils<FM extends FlinkMemory>
- java.lang.Object
-
- org.apache.flink.runtime.util.config.memory.ProcessMemoryUtils<FM>
-
- Type Parameters:
FM- the FLink memory component structure
public class ProcessMemoryUtils<FM extends FlinkMemory> extends Object
Common utils to parse JVM process memory configuration for JM or TM.The utility calculates all common process memory components from
CommonProcessMemorySpec.It is required to configure at least one subset of the following options and recommended to configure only one:
ProcessMemoryOptions.getRequiredFineGrainedOptions()ProcessMemoryOptions.getTotalFlinkMemoryOption()ProcessMemoryOptions.getTotalProcessMemoryOption()
The utility derives the Total Process Memory from the Total Flink Memory and JVM components and back. To perform the calculations, it uses the provided
ProcessMemoryOptionswhich are different for different Flink processes: JM/TM.The utility also calls the provided FlinkMemoryUtils to derive
FlinkMemorycomponents fromProcessMemoryOptions.getRequiredFineGrainedOptions()or from the Total Flink memory. The concreteFlinkMemoryUtilsis implemented for the respective processes: JM/TM, according to the specific structure of theirFlinkMemory.
-
-
Constructor Summary
Constructors Constructor Description ProcessMemoryUtils(ProcessMemoryOptions options, FlinkMemoryUtils<FM> flinkMemoryUtils)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description JvmMetaspaceAndOverheadderiveJvmMetaspaceAndOverheadFromTotalFlinkMemory(org.apache.flink.configuration.Configuration config, org.apache.flink.configuration.MemorySize totalFlinkMemorySize)static org.apache.flink.configuration.MemorySizederiveWithFraction(String memoryDescription, org.apache.flink.configuration.MemorySize base, RangeFraction rangeFraction)static org.apache.flink.configuration.MemorySizederiveWithInverseFraction(String memoryDescription, org.apache.flink.configuration.MemorySize base, RangeFraction rangeFraction)static StringgenerateJvmParametersStr(ProcessMemorySpec processSpec)static StringgenerateJvmParametersStr(ProcessMemorySpec processSpec, boolean enableDirectMemoryLimit)static org.apache.flink.configuration.MemorySizegetMemorySizeFromConfig(org.apache.flink.configuration.Configuration config, org.apache.flink.configuration.ConfigOption<org.apache.flink.configuration.MemorySize> option)static RangeFractiongetRangeFraction(org.apache.flink.configuration.MemorySize minSize, org.apache.flink.configuration.MemorySize maxSize, org.apache.flink.configuration.ConfigOption<Float> fractionOption, org.apache.flink.configuration.Configuration config)CommonProcessMemorySpec<FM>memoryProcessSpecFromConfig(org.apache.flink.configuration.Configuration config)
-
-
-
Constructor Detail
-
ProcessMemoryUtils
public ProcessMemoryUtils(ProcessMemoryOptions options, FlinkMemoryUtils<FM> flinkMemoryUtils)
-
-
Method Detail
-
memoryProcessSpecFromConfig
public CommonProcessMemorySpec<FM> memoryProcessSpecFromConfig(org.apache.flink.configuration.Configuration config)
-
deriveJvmMetaspaceAndOverheadFromTotalFlinkMemory
public JvmMetaspaceAndOverhead deriveJvmMetaspaceAndOverheadFromTotalFlinkMemory(org.apache.flink.configuration.Configuration config, org.apache.flink.configuration.MemorySize totalFlinkMemorySize)
-
getMemorySizeFromConfig
public static org.apache.flink.configuration.MemorySize getMemorySizeFromConfig(org.apache.flink.configuration.Configuration config, org.apache.flink.configuration.ConfigOption<org.apache.flink.configuration.MemorySize> option)
-
getRangeFraction
public static RangeFraction getRangeFraction(org.apache.flink.configuration.MemorySize minSize, org.apache.flink.configuration.MemorySize maxSize, org.apache.flink.configuration.ConfigOption<Float> fractionOption, org.apache.flink.configuration.Configuration config)
-
deriveWithFraction
public static org.apache.flink.configuration.MemorySize deriveWithFraction(String memoryDescription, org.apache.flink.configuration.MemorySize base, RangeFraction rangeFraction)
-
deriveWithInverseFraction
public static org.apache.flink.configuration.MemorySize deriveWithInverseFraction(String memoryDescription, org.apache.flink.configuration.MemorySize base, RangeFraction rangeFraction)
-
generateJvmParametersStr
public static String generateJvmParametersStr(ProcessMemorySpec processSpec)
-
generateJvmParametersStr
public static String generateJvmParametersStr(ProcessMemorySpec processSpec, boolean enableDirectMemoryLimit)
-
-