跳至主要內容

JVM 调优

大约 1 分钟

JVM 调优

JVM参数总结

-Xmn

设置年轻代堆的大小,单位为K、M、G,年轻代堆大小建议在总堆大小的25%~50%之间。如果太小,执行GC的频率会变高,如果太大,执行Full GC的时间会变长

-Xmn256m
-Xmn262144k
-Xmn268435456

可以使用 -XX:NewSize 设置初试大小 -XX:MaxNewSize设置最大大小。来代替-Xmn

-Xms

设置堆的初试大小,这个数值必须为1024的整数倍,且大于1M,单位为K、M、G

-Xms6291456
-Xms6144k
-Xms6m

如果没有设置,默认为年轻代和老年代大小之和。

堆的初始大小也可以使用-XX:InitalHeapSize参数设置

-Xmx

设置堆内存的最大值。该参数必须是1024的整数倍,并且大小超过2M,单位为K、M、G。-Xms和-Xmx通常为相同值

-Xmx83886080
-Xmx81920k
-Xmx80m

-Xss

设置线程栈的大小,单位为K、M、G。

不同系统的默认值:

  • Linux/x64 (64-bit): 1024 KB
  • macOS (64-bit): 1024 KB
  • Oracle Solaris/x64 (64-bit): 1024 KB
  • Windows: The default value depends on virtual memory
-Xss1m
-Xss1024k
-Xss1048576

-XX:ActiveProcessorCount=x

覆盖VM用于计算其用于各种操作 (例如GC和ForkJoinPool) 的线程池大小的CPU数量

VM通常从操作系统确定可用处理器的数量。在docker容器中运行多个Java进程时, 此标志对于分区CPU资源很有用。即使未启用UseContainerSupport, 也会保留此标志。

有关启用和禁用容器支持的说明, 请参见 -XX:-UseContainerSupport

-XX:-CompactStrings

禁用紧凑字符串功能,默认启用。

上次编辑于:
贡献者: xuliang,诗人都藏在水底