跳至正文
Wener Notes

Tuning

约 2 分钟阅读
标签:调优

Java Tuning

-Xfordefault
-Xmsinitial heap size
-Xmxmax heap size25%,最大25G
-XX
for
InitialRAMPercentage初始 堆内存 比例
MaxRAMPercentage最大 堆内存 比例
MinRAMPercentage最小 堆内存 比例
bash
-Xmx12g -Xms12g -Xmn8g -XX:MaxMetaspaceSize=512m -XX:MaxDirectMemorySize=256M -XX:+UseContainerSupport -XX:+UseG1GC -XX:MaxGCPauseMillis=200
bash
-XX:+UseContainerSupport -XX:InitialRAMPercentage=70.0 -XX:MaxRAMPercentage=70.0 -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/home/admin/nas/gc-${POD_IP}-$(date '+%s').log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/admin/nas/dump-${POD_IP}-$(date '+%s').hprof

内存限制

bash
java -XshowSettings:vm -version
java -XX:+PrintFlagsFinal -version

java -XX:+PrintFlagsFinal -version | grep -E 'Container|RAM|HeapSize'
java -XX:+PrintFlagsFinal -XX:MaxRAMPercentage=100.0 -version | grep -E 'Container|RAM'

# limits
cat /sys/fs/cgroup/memory/memory.limit_in_bytes

# 新版本 JAVA
java -Xlog:os+container=trace -version
  • UseContainerSupport
    • 默认开启
    • MaxRAMPercentage=25%
limitMaxRAM
< 1GB50%
1GB < 2GB512MB
> 2GB75%
  • -Xcompressedrefs

    • 3-bit shift
    • heap size 25GB 上限
    • 可通过 -XX:MaxRAMPercentage 或者 -Xmx 覆盖
  • -verbose


  • -Xmx
  • -XX
    , -XX
    , -XX
    • Java 8 update 191+
  • -XX
    , -XX
    • Java 8 update 131 -> Java 8 update 190
bash
java -XX:MaxRAMPercentage=50 -XshowSettings:vm -version

java -XshowSettings:vm -version
java -Xmx512m -XshowSettings:vm -version
java -XX:+UseContainerSupport -XshowSettings:vm -version
bash
# 需要/1024
cat /sys/fs/cgroup/cpu/cpu.shares

GC

PrintFlagsFinal

bash
docker run --rm wener/java java -XX:+PrintFlagsFinal -version

Flag List Example

text
[Global flags]
    uintx AdaptiveSizeDecrementScaleFactor          = 4                                   {product}
    ...
     intx CICompilerCount                          := 3                                   {product}
    ...
    uintx InitialHeapSize                          := 33554432                            {product}
    ...
    uintx MaxHeapSize                              := 524288000                           {product}
    ...
     bool UseG1GC                                   = false                               {product}
     bool UseParallelGC                            := true                                {product}
    ...

关联信息

反向链接、本文链接的其他页面和外部资料。

参考资料

其他外链5 条
最近更新commit 906e816编辑