Middle
How to limit a Java microservice by memory?
sobes.tech AI
Answer from AI
There are several ways to limit memory consumption of a Java microservice:
-
JVM parameters — set the maximum heap size and other memory parameters:
-Xmx— maximum heap size, for example-Xmx512mlimits the heap to 512 MB.-Xms— initial heap size.-XX:MaxMetaspaceSize— limit metaspace.
-
Container or orchestrator level restrictions (e.g., Docker, Kubernetes):
- In Docker, you can set a memory limit with
--memory. - In Kubernetes — via
resources.limits.memory.
- In Docker, you can set a memory limit with
-
Monitoring and profiling — to understand where and why the service consumes memory, and optimize the code.
Example of running a Java application with heap limit of 256 MB:
java -Xmx256m -jar app.jar
If the service runs in Docker, you can limit memory like this:
docker run --memory=512m my-java-service