【JVM】【参数】【配置信息】

  • 打印系统参数设置

-XX:+PrintFlagsFinal -XX:+PrintFlagsInitial -XX:+PrintCommandLineFlags

  1. Java -server -XX:+PrintFlagsFinal -Xmx100m -cp . helloworld 表格的每一行包括五列,来表示一个XX参数。第一列表示参数的数据类型,第二列是名称,第四列为值,第五列是参数的类别。第三列”=”表示第四列是参数的默认值,而”:=” 表明了参数被用户或者JVM赋值了。
  2. Java -server -XX:+PrintFlagsInitial -Xmx100m -cp . helloworld 列出上面所有为默认的参数;
  3. Java -server -XX:+PrintCommandLineFlags -Xmx100m -cp . helloworld 列出被用户或者JVM手动赋值的参数

 

  • GC日志
  1. -XX:+PrintGC 简单日志
  2. -XX:+PrintGCDetails 详细日志
  3. -XX:+PrintGCDateStamps 绝对日期时间
  4. -XX:+PrintGCApplicationStoppedTime 输出GC造成应用暂停的时间
  5. -Xloggc 设定GC 日志目录

 

  • 非堆内存
  1. 这一部分内存用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,即永久带区域,这块内存和堆是两块内存互补相关;
  2. GC不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS 的话,就很可能出现PermGen space错误。因此,如果项目加载比较多,则可以设置该值较大;
  3. -XX:PermSize设置非堆内存初始值,默认是物理内存的1/64,如果4G的用户空间内存,则此值就是64MB;
  4. 由XX:MaxPermSize设置最大非堆内存的大小。默认为物理内存1/4,那么4G的就是1024MB

 

 

 

  • 配置例子

TOMCAT的JVM参数

JAVA_OPTS='-server -XX:InitialHeapSize=800m -XX:MaxHeapSize=1024m -XX:NewSize=400m -XX:MaxNewSize=500m -XX:NewRatio=3 -XX:Surv

ivorRatio=8 -XX:MaxTenuringThreshold=15 -XX:TargetSurvivorRatio=60 -XX:PermSize=512m -XX:MaxPermSize=512m -XX:+UseCodeCacheFl

ushing -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSConcurrentMTEnabled -XX:ConcGCThreads=4 -XX:CMSInitiatingOccupancyF

raction=60 -XX:+ExplicitGCInvokesConcurrent -XX:+PrintGCDetails -Xloggc:/data/log/gc/gc.log -XX:+HeapDumpOnOutOfMemoryError

-XX:HeapDumpPath=/data/tmp/heapdump.hprof -XX:OnOutOfMemoryError=$CATALINA_HOME/bin/startup.sh

 

本地文件测试:

java -XX:InitialHeapSize=800m -XX:MaxHeapSize=800m -XX:NewSize=200m -XX:MaxNewSize=400m -XX:NewRatio=3 -XX:SurvivorRatio=8  -XX:MaxTenuringThreshold=15 -XX:TargetSurvivorRatio=60 -XX:PermSize=512m -XX:MaxPermSize=512m -XX:+UseCodeCacheFlushing -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSConcurrentMTEnabled -XX:ConcGCThreads=4 -XX:CMSInitiatingOccupancyFraction=60 -XX:+ExplicitGCInvokesConcurrent -XX:+PrintGCDetails -XX:+PrintGCDateStamps  -Xloggc:/data/log/gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/tmp/heapdump.hprof -cp . clien

你可能感兴趣的:(Java语言)