This is an automated email from the ASF dual-hosted git repository. trohrmann pushed a commit to branch release-3.2 in repository https://gitbox.apache.org/repos/asf/flink-statefun-playground.git
commit 54fb18dd5d5b16c74ed09603568755bbf0d2a7a0 Author: Till Rohrmann <[email protected]> AuthorDate: Sun Feb 6 13:14:30 2022 +0100 [FLINK-25934] Reduce Statefun's memory consumption to 300mb --- playground-internal/statefun-playground-entrypoint/Dockerfile | 4 +++- .../statefun-playground-entrypoint/docker-entrypoint.sh | 10 ++++++++++ .../internal/entrypoint/LocalEnvironmentEntrypoint.java | 7 +++++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/playground-internal/statefun-playground-entrypoint/Dockerfile b/playground-internal/statefun-playground-entrypoint/Dockerfile index 0438cc9..31bfb44 100644 --- a/playground-internal/statefun-playground-entrypoint/Dockerfile +++ b/playground-internal/statefun-playground-entrypoint/Dockerfile @@ -23,4 +23,6 @@ RUN mvn -f /usr/src/app/pom.xml clean package FROM openjdk:11 WORKDIR / COPY --from=builder /usr/src/app/target/statefun-playground-entrypoint*.jar statefun-playground-entrypoint.jar -ENTRYPOINT ["java", "-jar", "statefun-playground-entrypoint.jar"] +COPY docker-entrypoint.sh / +RUN chmod +x /docker-entrypoint.sh +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/playground-internal/statefun-playground-entrypoint/docker-entrypoint.sh b/playground-internal/statefun-playground-entrypoint/docker-entrypoint.sh new file mode 100644 index 0000000..f542d2f --- /dev/null +++ b/playground-internal/statefun-playground-entrypoint/docker-entrypoint.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +java \ +-XX:MaxDirectMemorySize=${MAX_DIRECT_MEMORY_SIZE:-80m} \ +-XX:MaxMetaspaceSize=${MAX_METASPACE_SIZE:-64m} \ +-Xms${MIN_HEAP_SIZE:-64m} \ +-Xmx${MAX_HEAP_SIZE:-192m} \ +-jar \ +statefun-playground-entrypoint.jar \ +"$@" diff --git a/playground-internal/statefun-playground-entrypoint/src/main/java/org/apache/flink/statefun/playground/internal/entrypoint/LocalEnvironmentEntrypoint.java b/playground-internal/statefun-playground-entrypoint/src/main/java/org/apache/flink/statefun/playground/internal/entrypoint/LocalEnvironmentEntrypoint.java index fb43e85..8503cf2 100644 --- a/playground-internal/statefun-playground-entrypoint/src/main/java/org/apache/flink/statefun/playground/internal/entrypoint/LocalEnvironmentEntrypoint.java +++ b/playground-internal/statefun-playground-entrypoint/src/main/java/org/apache/flink/statefun/playground/internal/entrypoint/LocalEnvironmentEntrypoint.java @@ -21,7 +21,9 @@ import java.util.Collection; import org.apache.flink.api.java.utils.MultipleParameterTool; import org.apache.flink.configuration.CheckpointingOptions; import org.apache.flink.configuration.Configuration; +import org.apache.flink.configuration.MemorySize; import org.apache.flink.configuration.StateBackendOptions; +import org.apache.flink.configuration.TaskManagerOptions; import org.apache.flink.statefun.flink.core.StatefulFunctionsConfig; import org.apache.flink.statefun.flink.core.StatefulFunctionsJob; import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; @@ -96,6 +98,11 @@ public final class LocalEnvironmentEntrypoint { flinkConfiguration.set(StateBackendOptions.STATE_BACKEND, "rocksdb"); flinkConfiguration.set(CheckpointingOptions.INCREMENTAL_CHECKPOINTS, true); + // reduce Flink's memory footprint a bit + flinkConfiguration.set(TaskManagerOptions.MANAGED_MEMORY_SIZE, MemorySize.ofMebiBytes(64)); + flinkConfiguration.set(TaskManagerOptions.NETWORK_MEMORY_MIN, MemorySize.ofMebiBytes(16)); + flinkConfiguration.set(TaskManagerOptions.NETWORK_MEMORY_MAX, MemorySize.ofMebiBytes(16)); + return flinkConfiguration; } }
