java虚拟机参数


  • java gc
http://www.cnblogs.com/zhguang/p/3257367.html
http://skly-java.iteye.com/blog/1705863
http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html#generations.performance
Eden区是连续的空间,且Survivor总有一个为空。经过一次GC和复制,一个Survivor中保存着当前还活着的对象,而Eden区和另一个Survivor区的内容都不再需要了,可以直接清空,到下一次GC时,两个Survivor的角色再互换。

  • JVM参数
JVM选项含义 
http://kenwublog.com/docs/java6-jvm-options-chinese-edition.htm
http://www.cnblogs.com/zhguang/p/3342039.html
http://docs.hexnova.com/amoeba/jvm-settings.html 
-Xms  初始Heap大小
-Xmx  Java Heap最大值
-Xmn  Young Generation的Heap大小
-Xss   每个线程的Stack大小

-XX:+

-XX:SurvivorRatio参数来配置Eden区域Survivor区的容量比值,默认是8,代表Eden:Survivor1:Survivor2=8:1:1

-XX:MaxTenuringThreshold控制,大于该值进入老年代,但这只是个最大值,并不代表一定是这个值

-XX:+UseAdaptiveSizePolicy开关来控制是否采用动态控制策略

-XX:PretenureSizeThreshold来控制直接升入老年代的对象大小,大于这个值的对象会直接分配在老年代上

-XX:+HandlePromotionFailure(允许担保失败),如果允许,则只会进行MinorGC,此时可以容忍内存分配失败;如果不允许,则仍然进行Full GC

  • kafka jvm参数示例
java -server -Xms3072m -Xmx3072m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC 
     -XX:+UseCMSInitiatingOccupancyOnly -XX:+CMSConcurrentMTEnabled -XX:+CMSScavengeBeforeRemark 
     -XX:CMSInitiatingOccupancyFraction=30 
     -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution 
     -Xloggc:logs/gc.log -Djava.awt.headless=true
     -Dcom.sun.management.jmxremote -classpath  the.actual.Class

XX:+UseCMSInitiatingOccupancyOnly: 指示只有在old generation在使用了初始化的比例后启动cms gc

XX:+CMSConcurrentMTEnabled:  allows CMS to use multiple cores for concurrent phase

XX:+CMSScavengeBeforeRemark: 在执行CMS remark之前进行一次youngGC,这样能有效降低remark的时间

XX:CMSInitiatingOccupancyFraction=n 指示在old generation在使用了n%的后,触发cms gc
XX:+PrintTenuringDistribution: 任期阀值的分布和对象岁数的分布

-Djava.awt.headless=true

‑XX:+CMSConcurrentMTEnabled – allows CMS to use multiple cores for concurrent phase.
‑XX:+ConcGCThreads= – specifies number of thread for concurrent phases.
‑XX:+ParallelGCThreads= – specifies number of thread for parallel work during stop-the-world pauses (by default it equals to number of physical cores).
-XX:CMSWaitDuration –设置收集暂停的最大间隔时间,越大你的应用将被暂停,类似死机没有反应
-XX:+CMSScavengeBeforeRemark 可以避免在收集期间同时扫描。

-D= set a system property设置一个系统参数和值

-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:$logpath/gc.$START_TIME.log \
-XX:NewSize=256m -XX:MaxNewSize=256m \
-XX:+UseParNewGC \
-XX:+UseConcMarkSweepGC \

-Xms128m
表示JVM Heap(堆内存)最小尺寸128MB,初始分配
-Xmx512m
表示JVM Heap(堆内存)最大允许的尺寸256MB,按需分配。

java永久生成对象:Permanate generation
-XX:PermSize=64MB 最小尺寸,初始分配
-XX:MaxPermSize=256MB 最大允许分配尺寸,按需分配

Linux下处理图片时需加上参数“-Djava.awt.headless=true”

你可能感兴趣的:(java)