首先知道JVM相关参数的意思:
写道
JVM的配置,最常用的两个配置就是:
-Xms512m –Xmx1024m
-Xms设置JVM的初始化内存大小,-Xmx为最大内存大小,当突破这个值,将会报内存溢出,导致的原因有很多,主要是虚拟机的回收问题以及程序设计上的内存泄露问题;由于在超过-Xms时会产生页面申请的开销,所以一般很多应用服务器会推荐-Xms和-Xmx是等值的;最大值一般不保持在主机内存的75%的内存左右(多个SERVER是加起来的内存),当JVM绝大部分时间处于回收状态,并且内存长时间处于非常长少的状态就会报:java.lang.OutOfMemoryError:Java heap space的错误。
上面提及到JVM很多的知识面,很显然你想去设置一下其它的参数,其实对于JVM设置的参数有上百个,这里就说一些较为常用配置即可。
JVM内存配置分两大类:
1、-X开头的参数信息:一般每个版本变化不大。
2、-XX开头的参数信息:版本升级变化较大,如果没有太大必要保持默认即可。
3、另外还有一个特殊的选项就是-server还是-client,他们在默认配置内存上有一些细微的区别,直接用JDK运行程序默认是-client,应用服务器生产模式一般只会用-server。
这些命令其实就是在运行java命令或者javaw等相关命令后可以配置的参数,如果不配置,他们有相应的默认值配置。
1、-X开头的常用配置信息:
-Xnoclassgc 禁用垃圾回收,一般不适用这个参数
-Xincgc 启用增量垃圾回收
-Xmn1024K Eden区初始化JAVA堆的尺寸,默认值640K
-Xms512m JAVA堆初始化尺寸,默认是32M
-Xmx512m JAVA堆最大尺寸,默认64M,一般不超过2G,在64位机上,使用64位的JVM,需要操作系统进行unlimited方可设置到2G以上。
2、-XX开头常用内存配置信息:
-XX:-DisableExplicitGC 将会忽略手动调用GC的代码,如:System.gc(),将-DisableExplicitGC, 改成+DisableExplicitGC即为启用,默认为启用,什么也不写,默认是加号,但是系统内部默认的并不是什么都启用。
-XX:+UseParallelGC 将会自动启用并行回收,多余多CPU主机有效,默认是不启用。
-XX:+UseParNewGC 启用并行收集(不是回收),也是多CPU有效。
-XX:NewSize=128m 新域的初始化尺寸。
-XX:MaxNewSize=128m 新创建的对象都是在Eden中,其属于新域,在-client中默认为640K,而-server中默认是2M,为减少频繁的对新域进行回收,可以适当调大这个值。
-XX:PerSize=64m 设置永久域的初始化大小,在WEBLOGIC中默认的尺寸应该是48M,一般够用,可以根据实际情况作相应条调整。
-XX:MaxPerSize=64m 设置永久域的最大尺寸。
另外还可以设置按照区域的比例进行设置操作,以及设置线程、缓存、页面大小等等操作。
3、-XX开头的几个监控信息:
-XX:+GITime 显示有多少时间花在编译代码代码上,这部分为运行时编译为对应机器码时间。
-XX:+PrintGC 打印垃圾回收的基本信息
-XX:+PrintGCTimeStamps 打印垃圾回收时间戳信息
-XX:+PrintGCDetails 打印垃圾回收的详细信息
-XX:+TraceClassLoading 跟踪类的加载
-XX:+TraceClassResolution 跟踪常量池
-XX:+TraceClassUnLoading 跟踪类卸载
等等。。。。。。
in order to enable jconsole to monitor Tomcat Application, just add the additional line in catalina.bat or catalina.sh
-Dcom.sun.management.jmxremote.port="9001"
-Dcom.sun.management.jmxremote.authenticate="false"
-Dcom.sun.management.jmxremote.ssl="false"
Using JConsole请看
http://download.oracle.com/javase/6/docs/technotes/guides/management/jconsole.html
关于实战:推荐一篇
sdh5724 JVM 几个重要的参数
http://www.iteye.com/wiki/jvm/2870-JVM 提供的设置仅仅是在高压力, 多CPU, 高内存环境下设置
分享到:
相关推荐
性能监控JConsole远程监控Tomcat服务
配置tomcat使用jconsole 修改catalina脚本 Windows平台:修改catalina.bat,在dorun和dostart段开头增加一行(注意是一行): set JAVA_OPTS=%JAVA_OPTS% -Djava.rmi.server.hostname=192.168.1.101 -Dcom.sun....
JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行。您可以轻松地使用 JConsole(或者,它更高端的 “近亲” VisualVM )来监控 Java 应用程序性能和跟踪 Java 中的代码。
Tomcat性能调优指导手册 1. 概述 3 2. Java虚拟机性能调优 3 2.1 catalina.sh 或 catalina.bat 3 2.2 winNT服务 3 3. 禁用DNS查询 4 4. 调整线程数(连接数) 4 5. 使用gzip传输 5 6. 负载均衡 5 6.1 实现负载均衡的...
NULL 博文链接:https://xiaotao-2010.iteye.com/blog/1460209
jconsole+tomcat配置说明 附加Tomcat内存说明(基于jdk5.0).docx ),希望对大家有帮助
使用jconsole远程监控tomcat jmx 实验操作详细信息,本人实验实操
JConsole能够提供被监控虚拟机的内存、线程、类的加载以及MBean等信息,从而能够对服务器的运行情况进行实时监控。 其实在 JDK 5 中已经新加入了这个功能了. 现在的 JDK 已经内置了对 VM 的监控功能. JDK 6 中这个...
jconsole使用手册中文版,详细描述了如何配置使用jconsole进行java程序的性能监控
使用Jconsole对java的内存使用情况(JVM)进行监控参照.pdf
NULL 博文链接:https://myhearsnow.iteye.com/blog/1851119
JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行。您可以轻松地使用 JConsole(或者,它更高端的 “近亲” VisualVM )来监控 Java 应用程序性能和跟踪 Java 中的代码
介绍了如何使用JConsole分析JVM,一步一步使用JConsole
Jprofile资料——使用JConsole实现JBoss性能监控Jprofile资料——使用JConsole实现JBoss性能监控Jprofile资料——使用JConsole实现JBoss性能监控
主要介绍了使用jconsole监听远程Tomcat服务,需要的朋友可以参考下
使用Jconsole对java的内存使用情况(JVM)进行监控
使用Jconsole对java的内存使用情况(JVM)进行监控.pdf
jconsole.jar下载
linux下tomcat优化设置最大连接数内存jconsole监控.docx
jconsole.1.8.0jar 这个包也经常maven导入报错 也是本人亲测有效