通过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-05 13:54:21.772:INFO::JMX Remote URL: service:jmx:rmi://xxx.xxx.xxx.xxx/jndi/rmi://localhost:39527/jettyjmx
并且没有像”拒绝连接”的错误日志,表示启动成功了。可以通过 netstat -an|grep 39527 查看到在侦听39527端口
注意,这里用39527,默认的1099,小于1024的端口在linux上,只有root才有权限使用。
4、客户端连接使用以下URL:
service:jmx:rmi://xxx.xxx.xxx.xxx/jndi/rmi://localhost:39527jettyjmx
将机器名或localhost替换成ip即可。
本文来源于"阿里中间件团队播客",原文发表时间" 2012-04-10"