设置jar包使用内存
下面的命令中包含了几个 jvm option
限制运行jar包使用的内存在72M。
java -XX:+UseSerialGC -Xss512k -XX:MaxRAM=72m -jar image-0.0.4-SNAPSHOT.jar
如果不加这3个option的话,会使用大概300-400M内存。
根据这个答案1进行的设置:
With -XX:+UseSerialGC
这将与分配堆内存的线程而不是专用GC线程内联地执行垃圾回收。
With -Xss512k
这会将每个线程的堆栈内存限制为512KB,而不是默认的1MB。
With -XX:MaxRAM=72m
这会将JVM对堆和非堆托管内存的计算限制在此值的范围内。
除了上述JVM选项之外,您还可以在 application.properties
文件中使用以下属性:
server.tomcat.max-threads = 1
这会将HTTP请求处理程序线程数限制为1(默认值为200)
这是一个使用上述限制并使用 docker -m 72m
参数运行非常简单的 Spring Boot
应用程序的 docker stats
示例。如果我降低的值低于此值,我将无法启动应用程序。
83ccc9b2156d: Mem Usage: 70.36MiB / 72MiB | Mem Percentage: 97.72%
-
CCob.stackoverflow Answers.2018年10月25日 ↩︎