通过visualvm/jconsole可以比较直观的观看jvm的运行情况。在jetty简单本置便可提供远程监控。
1、配置jetty运行参数:
ARG=””
ARG=”$ARG-Dcom.sun.management.jmxremote”
ARG=”$ARG-Dcom.sun.management.jmxremote.ssl=false”
ARG=”$ARG-Dcom.sun.management.jmxremote.authenticate=false”
ARG=”$ARG-Dcom.sun.management.jmxremote.port=39527″
ARG=”$ARG-Djava.rmi.server.hostname=xxx.xxx.xxx.xxx″
ARG=”$ARG-Xmx2g”
ARG=”$ARG-Xmn512m”
ARG=”$ARG-verbose:gc”
ARG=”$ARG-XX:+PrintGCDateStamps”
ARG=”$ARG-XX:+PrintGCTimeStamps”
ARG=”$ARG-XX:+PrintGCDetails”
ARG=”$ARG-XX:+PrintTenuringDistribution”
ARG=”$ARG-XX:+PrintCommandLineFlags”
ARG=”$ARG-XX:+UseConcMarkSweepGC”
ARG=”$ARG-XX:ParallelCMSThreads=2″
ARG=”$ARG-XX:+CMSClassUnloadingEnabled”
ARG=”$ARG-XX:+UseCMSCompactAtFullCollection”
ARG=”$ARG-XX:CMSInitiatingOccupancyFraction=80″
ARG=”$ARG-XX:MaxDirectMemorySize=2g”

2、去掉jetty-jmx.xml最后一段jmx连接测试的配置,并且在start.ini中把jetty-jmx.xml前的#去掉
3、启动jetty,日志中会看到以下类似信息:
2012-04-0513:54:21.772:INFO::JMXRemoteURL:service:jmx:rmi://xxx.xxx.xxx.xxx/jndi/rmi://localhost:39527/jettyjmx
并且没有像”拒绝连接”的错误日志,表示启动成功了。可以通过netstat-an|grep39527查看到在侦听39527端口
注意,这里用39527,默认的1099,小于1024的端口在linux上,只有root才有权限使用。
4、客户端连接使用以下URL:
service:jmx:rmi://xxx.xxx.xxx.xxx/jndi/rmi://localhost:39527jettyjmx
将机器名或localhost替换成ip即可。