在高性能的系统服务中,性能调优成为了必不可少的一部分。
我在发现这个问题的时候是在使用jdk 1.8 版本,而在 (jdk 7u4 +)版本就已支持 通过JMC进行对服务的监控,也让我们跟容易对代码的进行监控,调优。
如果不了解jmc怎么使用的可以参考:https://blog.youkuaiyun.com/yue530tomtom/article/details/80805412
描述的很清晰,很详细。
而我在这边遇到的一个问题是,在我本地使用的是Oracle 的jdk 而线上却使用了 open jdk,当要想监控服务器上服务的数据时,出现了找不到类等一系列问题,以至于不支持jmc 。
这里需要注意的一点是,JMC可以用于java7以上的所有版本,而飞行记录器,只能用于oracle jre,且是java7及以上的版本,因为要使用飞行记录器,需要开启jvm的商业特性,也就是在启动的时候加上参数:"-XX:+UnlockCommercialFeatures","-XX:+FlightRecorder"。如果是open jdk,尝试加这两个参数的时候,会直接导致虚拟机终止,无法正常启动。所以,飞行记录器只能局限在oracle jdk里面使用。
想了解其他的信息可以查看 : 官网文档