jmc监控工具

java7以上的版本,jdk的bin目录下自带jmc工具,可以用来监控java应用的性能,貌似比jvisualvm全面一些

用法是先在java服务启动的地方加入jmxServer代码,绑定端口,建立起jmx服务


</pre><pre name="code" class="java">jmxServer = new JmxServer(config.getProperty(RmiServer.RMI_SERVER_HOST), 10713);
		jmxServer.start();
		SessionFactory sf = context.getBean(SessionFactory.class);
		jmxServer.addProvider(new EhcacheMonitor(sf, "gameserver", false, true));

public class JmxServer {


	private static final Logger logger = LoggerFactory.getLogger(JmxServer.class);
	private MBeanServer mbServer;
	private String hostName;
	private int port;
	private JMXConnectorServer connectorServer;


	public JmxServer(String hostName, int port) {
		this.hostName = hostName;
		this.port = port;
		this.mbServer = ManagementFactory.getPlatformMBeanServer();
	}


	public void start() {
		System.setProperty("java.rmi.server.hostname", hostName);


		Properties properties = new Properties();
		properties.put(ConnectorBootstrap.PropertyNames.USE_AUTHENTICATION, "true");
		properties.put(ConnectorBootstrap.PropertyNames.USE_SSL, "false");
		connectorServer = ConnectorBootstrap.initialize(String.valueOf(port), properties);


		logger.info("Start the JMX server on {}:{}", hostName, port);
	}


	public void stop() {
		try {
			if (this.connectorServer != null) {
				this.connectorServer.stop();
			}
		} catch (Exception e) {
			logger.error("", e);
		}
	}


	public void addProvider(MBeanProvider provider) throws Exception {
		provider.register(this.mbServer);
	}
}


服务建立起来以后,需要在java的\jre7\lib\management的目录下加入jmxremote.password,jmxremote.access身份验证文件,win操作系统下需要修改这两个文件的访问权限,修改方法,选择文件右键,安全,权限

jmxremote.password这个里面可以设置用户的访问名称,和密码,在最后面加入

# monitorRole  QED
# controlRole   R&D
monitorRole 123456
controlRole 123456



jmxremote.access这个里面可以设置用户的访问权限,在最后面加入

# o The "monitorRole" role has readonly access.  
# o The "controlRole" role has readwrite access and can create the standard
#   Timer and Monitor MBeans defined by the JMX API.
monitorRole   readonly
controlRole   readwrite \
              create javax.management.monitor.*,javax.management.timer.*,com.sun.management.*,com.oracle.jrockit.*  \
              unregister


这两个文件改好放对位置后,java服务启动时加入如下参数,

-XX:MaxDirectMemorySize=1024m -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:FlightRecorderOptions=defaultrecording=true

这样,jmx服务就算搭建完成了,后面的就是使用jmc客户端去连接这个服务,监控性能,连接的时候身份验证就是之前那个jmxremote.password文件里配的用户名和密码

连上去之后可以看到JMC工具的强大,特别是飞行记录仪,蛮好用的




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值