jmc使用说明

实验JDK版本:jdk1.8.0_73
JMC:5.5(最新已经6.0了支持jdk9)html

概述

JMC:Java Mission Control
伴随着5月份oracle的一份开源声明—-JMC Open Sourced JMC又一次备受关注。java

JMC是源自JRockit JVM的一套监控和管理工具,Oracle在发布JAVA 7u4(Java 7 Update 40)时将其包含在JDK中,用户再也不须要单独下载。web

使用 JMC能够监视和管理 Java 应用程序,不会致使相关工具类的大幅度性能开销,它使用为 Java 虚拟机 (JVM) 的普通自适应动态优化收集的数据。设计模式

主要部分api

  • JVM浏览器:显示了正在运行的 Java 应用程序及其 JVM,每一个JVM实例称为一个JVM链接。JVM浏览器容许用户列出并链接到本地和远程运行的 Java 应用。它可以使用 Java 发现协议(JDP)自动地发现本地和远程运行的 Java 进程。
  • JMX 控制台:可以经过 JMX 接口管理并监控 JDK ,实时收集并显示其特征。它提供了实时集合、堆使用状况、CPU 负载以及其余经过 MBeans 暴露的和在 MBean 服务器中注册的信息,并可经过托管 Bean (MBean) 更改一些运行时属性。还能够建立在特定事件上触发的规则 (例如,若是应用程序的 CPU 占用率达到了 90%,则发送电子邮件)。
  • JFR:提供了一种从操做系统层、JVM 和 Java 应用程序层收集事件的方式。收集的事件包括线程延时事件,例如休眠(sleep)、等待(wait)、锁竞争、I/O、GC 和方法分析。

Java Mission Control 插件使用 Java Management Extensions (JMX) 代理链接到 JVM浏览器

准备

  • JDK:jdk1.8.0_73 (jdk 7u4 +便可)
  • JMX配置(被监控的jvm)
-Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=10.255.255.150 
-XX:+UnlockCommercialFeatures -XX:+FlightRecorder

配置分两部分:jmx配置和启用JFR。若是使用 JDK 8u40 或更高版本能够在运行时从 JMC 自己启用 JFR。详细参见 Standard Edition Java Flight Recorder Command Referencer缓存

  • 将JVM选项传递到JMC启动程序(可选)
    方式一:jmc.ini
    JMC是Java应用程序,JMC 客户机可执行文件是此应用程序的启动程序。JMC 启动由在 jmc.ini 文件 (该文件位于 JAVA_HOME/bin 目录中) 中指定的选项控制。jmc.ini 文件中的 -vmargs 选项的参数是传递到运行 JMC 应用程序的 JVM 的选项。能够指定这些选项以控制此 JVM 的运行方式。
-startup ../lib/missioncontrol/plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
--launcher.library ../lib/missioncontrol/plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20141007-2033
--launcher.appendVmargs -vm ../jre/bin/
-vmargs -XX:+UseG1GC -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:FlightRecorderOptions=defaultrecording=true -Djava.net.preferIPv4Stack=true

方式二:
不修改 jmc.ini 文件,则能够在命令行上将 JVM 选项指定为 jmc 命令的 -vmargs 选项的参数。安全

jmc -vmarg 参数

如:设置日志输出目录ruby

jmc -vmargs -Djava.util.logging.config.file=d:/log.log

JVM浏览器

  • 默认会展现本地JVM进程
  • 经过新建JVM链接展现远程JMX(能够参考准备章节中的配置)
  • 经过JDP自动搜索
    • 打开窗口菜单,而后选择首选项。
    • 在左侧窗格中,展开 Java Mission Control,再展开 JVM 浏览器,而后选择 JDP。
    • 输入要联接的多点传送组的地址、输入要监听的端口、输入 JVM 脉动超时

如下内容有些流水帐,请根据须要选择性阅读服务器

JMX控制台

使用 JMX 控制台能够监视和控制正在运行的 Java 虚拟机 (JVM) 实例以及其上运行的应用程序。它提供有关 Java 应用程序特征 (如内存使用量和 CPU 占用率) 和 JVM 活动 (如垃圾收集和方法优化) 的实时信息。

配置一个链接

newGuide
建立完成后双击MBean或者右键–>打开JMX控制台,均能打开控制台
jmx控制台

展现面板

概览

默认布局提供 CPU 和内存使用状况的概览。
概览:能够添加自定义图表,经过概览的加号”添加图表”实现;能够重置,经过”重置为默认控件”实现。
添加图表后,能够经过图表的加号添加相应的子项,并能够在图表上右键详细设置(以下图中的Test)
jmx概览

在相应的图表上右键,能够获取丰富的详细选项

MBean浏览器

JMC使用托管Bean (MBean) 为监视和管理 Java 应用程序性能提供统一且一致的界面。MBean 是采用符合 JMX 规范的设计模式的托管对象。MBean 能够表示一个设备、一个应用程序或须要托管的任何资源。MBean 的管理界面由一组属性、操做和通知组成。
MBean 浏览器提供对全部已注册 MBean 的访问。MBean 在管理服务器中注册,后者能够经过与 Java Management Extensions (JMX) 兼容的客户机访问
jmx浏览器

要建立和注册新 MBean,请单击 MBean 面板加号图标。执行此操做会启动动态建立和注册新的 MBean 向导,提示为新 MBean 输入对象名和类名。若要继续,对象名必须有效,而且类名必须是有效的 Java 类名。请注意,该向导不会验证类是否对 MBean 服务器可用;将只进行语法检查。要注销特定 MBean,右键单击并从上下文菜单中选择注销。
jmxMBean功能

MBean功能

  • 属性:列出所选 MBean 的属性。
  • 操做:列出可从所选 MBean 调用的操做。
  • 通知:列出在运行时期间 MBean 所提示的通知。
  • 元数据:包含描述 MBean 的信息。

触发器

使用触发器选项卡能够管理知足特定条件时触发事件的规则。这是一种无需持续地监视应用程序便可跟踪运行时问题的有用方法。以灰色显示的规则在监视的 JVM 中不可用。默认状况下,停用全部规则。要激活某个规则,请选中该规则旁边的复选框
jmx触发器

规则详细信息

  • 条件:选择触发规则时所在的属性和值。
  • 操做:选择应由规则触发的事件。
  • 约束条件:选择激活规则时的时间约束条件。

建立触发器
create

  • 设置触发规则的条件:

    • 最大触发值 :最大触发值(对于数值属性) 或匹配字符串 (对于非数值属性),指定用于触发规则的选定属性的最大值或匹配字符串。
    • 持续时间:指定条件必须保持为“真”以触发规则的持续时间 (默认秒),。
    • 限制时间段:指定能够接下来再次触发规则所要通过的最短期长度 (默认秒)。
    • 知足条件时触发:选择是否在知足条件时触发规则。例如,若是触发值设置为 100,则在值从小于 100 更改成 100 或更高值时触发规则。
    • 从条件恢复时触发:选择是否当再也不知足条件时触发规则。例如,若是触发值设置为 100,则在值从 100 或更高值更改成 100 时触发规则。

其中持续时间和限定时间的单位以下图
时间单位

  • 在规则触发时发生的操做

    • 应用程序预警:在JMC中显示预警对话框。
    • 控制台输出:将通知发送到启动 JMX 控制台的控制台 (命令提示) 的标准输出 (stdout)。
    • 转储飞行记录:将最后指定时段 (秒) 的飞行记录中可用的所有数据转储到 JFR 文件。
    • HPROF 转储:启动到指定 HPROF 文件的内存转储。
    • 调用诊断命令:调用指定的诊断命令,经过附加或覆盖结果将输出记录到指定的 LOG 文件。
    • 记录到文件:将通知写入到指定的 TXT 日志文件。
    • 发送电子邮件:经过电子邮件发送通知。能够配置 SMTP 服务器地址和端口、电子邮件的接收方和发送方并提供 SSL 身份证实 (若是须要安全链接)。
    • 启动连续飞行记录:启动连续飞行记录。
    • 启动限时飞行记录:启动飞行记录,在指定的时段以后将结果转储到 JFR 文件中。

系统

系统选项卡提供了运行 JVM 的系统的信息、JVM 的性能属性以及系统属性列表。
jmx系统

  • 服务器信息
    在系统选项卡顶部的服务器信息面板中,包含运行 JVM 的服务器的类别和值列表。这些信息对调试应用程序开发问题和运行时问题以及提出支持请求很是有用。这是通常系统信息,不能更改。

  • JVM 统计信息
    JVM 统计信息面板包含 JVM 主要性能属性的当前值。默认状况下,表中显示如下属性:

    • 当前已加载类计数
    • 运行时间

要向表中添加属性,请单击 JVM 统计信息面板右上角的添加属性按钮。要删除属性,请在表中右键单击该属性,而后选择删除。右键单击属性后,能够更改其更新间隔、单位,而对于一些属性,还能够设置值。

  • 系统属性
    系统属性面板包含一个表,其中列出使用 JVM 调用的全部属性的关键字和值。要筛选属性,请选择筛选列 (关键字或值),并在表上方的文本字段中指定筛选器字符串。
    要配置表外观,请单击系统属性面板右上角的表设置按钮,而后选择要显示或隐藏的列。对于各列,能够设置最小宽度、比例和初始排序顺序。展现的是通常系统信息,不能更改。

内存

使用内存选项卡能够监视应用程序使用内存资源的效率。此选项卡主要提供如下方面的信息:堆使用量、垃圾收集和活动内存池。此选项卡上提供的信息可帮助肯定是否已将 JVM 配置为提供最佳应用程序性能。
jmx内存

在内存选项卡中,可使用该选项卡右上角的运行彻底垃圾收集按钮手动启动彻底垃圾收集。

  • GC 表
    GC 表面板包含可用垃圾收集器的主要性能属性的当前值。该面板分为标有活动垃圾收集器名称的多个选项卡

    • 总收集时间
    • 收集计数
    • GC 开始时间
    • GC 结束时间
    • GC 持续时间
    • GC ID
    • GC 线程计数

右键单击属性后,能够更改其更新间隔、单位,而对于一些属性,还能够设置值。

  • 活动内存池
    活动内存池面板包含一个表,其中列出可供 JVM 使用的内存池的信息。默认状况下,该表包含如下列:

    • 池名称:内存池的名称。
    • 类型:内存池的类型。若是内存池属于 Java 堆,则类型为 HEAP,不然为 NON_HEAP。
    • 已用:当前已用的内存池大小。
    • 最大值:内存池的最大大小。
    • 占用率:当前使用量占最大内存池大小的百分比。
    • 已用峰值:在受监视 JVM 的有效期内内存池已用内存的峰值。
    • 最大值峰值:在受监视 JVM 的有效期内最大内存池大小的峰值。

线程

使用线程选项卡能够监视线程活动。此选项卡包含一个绘制应用程序随时间推移的活动线程使用状况的图形、一个由该应用程序使用的全部活动线程的表以及选定线程的堆栈跟踪
jmx线程

  • 活动线程图
    活动线程图显示 Java 应用程序随时间推移启动的线程数。默认状况下,图形中显示如下属性:

    • 高峰活动线程计数
    • 活动线程总计数
    • 守护程序活动线程计数
  • 活动线程
    活动线程面板包含一个表,其中列出 Java 应用程序所启动活动线程的信息。默认状况下,该表包含如下列:

    • 线程名称:线程的名称。
    • 线程状态:线程的状态。线程能够是如下状态之一:NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING 或 TERMINATED。
    • 受阻计数:线程处于 BLOCKED 状态的次数。
    • CPU 整体占用率:线程所使用 CPU 资源占总 CPU 资源的百分比。默认状况下不提取此值。要启用它,请在表上方选择 CPU 概要分析。
    • 死锁:线程是否已死锁。默认状况下不提取此值。要启用它,请在表上方选择死锁检测。
    • 已分配的字节:已分配给线程的字节数。默认状况下不提取此值。要启用它,请在表上方选择分配。

实时监视最后三个值会消耗大量系统资源。这就是默认状况下禁用它们的缘由。使用表上方相应的复选框,对这些值启用监视。

  • 选定线程的堆栈跟踪
    在活动线程表中选择线程后,其整个堆栈跟踪将显示在下面的选定线程的堆栈跟踪面板中。堆栈跟踪包含全部方法 (一直到当前执行的方法) 的调用路径。它很是有用,例如,当须要肯定致使死锁或代码执行过程当中意外中断的方法时。

可使用 Ctrl 键在活动线程表中选择多个线程来显示多个堆栈跟踪。

诊断命令

使用诊断命令可监视 Java 应用程序的效率和性能。JMC 使用大量不一样的诊断工具,包括一组可使用诊断命令选项卡针对应用程序运行的命令。
jmx

运行 JMX 控制台监视 JVM 的额外成本很小,几乎能够忽略不计。它提供低成本的应用程序监视和概要分析 JMX标准参考

JFR:Java Flight Recorder

JFR 是 JMC 中一个很是关键的功能。是一个用于收集有关正在运行的 Java 应用程序的诊断数据和概要分析数据的工具。它记录了 JVM 全部事件的历史数据,经过这些数据,程序性能分析人员能够结合以往的历史数据对 JVM 性能瓶颈进行分析诊断。它集成到 Java 虚拟机 (JVM) 中,几乎不会带来性能开销,所以甚至能够在高负载生产环境中使用。使用默认设置时,内部测试和客户反馈代表性能影响低于 1%。对于一些应用程序,这一数字会大幅下降。可是,对于短期运行的应用程序 (不是在生产环境中运行的应用程序类型),相对的启动和预热时间可能会较长,这对性能的影响可能会超过 1%。JFR 收集有关 JVM 及其上运行的 Java 应用程序的数据。

JFR 的基本操做是开启一系列的事件。当某个事件发生时,这个事件的全部数据将会被保存至内存或者一个文件当中。数据流被保留在一个环形缓存中,因此只有最近发生的事件的数据才是可用的。JMC 能够从 JVM 或者文件中读取并展现这些事件数据,经过这些数据,能够进行性能分析。

启用 Java 飞行记录器

默认状况下,在 JVM 中禁用了 JFR。要启用 JFR,必须使用 -XX:+FlightRecorder 选项启动 Java 应用程序。因为 JFR 是一种商业功能,仅在基于 Java 平台标准版 (Oracle Java SE Advanced 和 Oracle Java SE Suite) 的商业包中提供,所以还须要使用 -XX:+UnlockCommercialFeatures 选项来启用商业功能。(能够参阅在准备阶段配置中的配置)

使用命令行选项能够

java -XX:+UnlockCommercialFeatures -XX:+FlightRecorder ……

请注意,在 JVM 上运行依赖于 lambda 表单的其余语言时 (如 JavaScript 实施 Nashorn),堆栈跟踪的深度会很是深。要确保对大堆栈的堆栈跟踪正确采样,可能须要增长飞行记录器的堆栈深度。一般将此值设置为 1024 便已足够:

java -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:FlightRecorderOptions=stackdepth=1024 ……

JFR 具备如下优点

  • 提供更好的数据:JFR 使用的相关数据模型使其易于交叉引用和过滤事件。
  • 容许使用第三方事件提供程序:JFR 经过一组 API 监视第三方应用程序
  • 下降整体成本:使用 JFR 能够缩短在诊断问题和排除问题方面所花的时间、减小运营成本和业务中断、在出现问题时可以更快地予以解决,而且能够提升系统效率。

JFR 使用场景

  • 概要分析
    JFR 连续保存有关正在运行的系统的大量数据。此概要分析信息包括线程样本 (其中显示程序在什么地方占用了时间)、锁概要文件以及垃圾收集详细信息。
  • 黑匣子分析
    JFR 将信息连续保存到循环缓冲区。可在检测到异常时评估此信息以查找缘由。
  • 支持和调试
    在与 Oracle 技术支持联系以帮助诊断 Java 应用程序的问题时,JFR 收集的数据很是重要。

JFR展现的项目

飞行记录器插件在一系列选项卡和子选项卡中显示记录文件的信息,并带有包含表和图形的面板。选项卡排列在选项卡组中,这些选项卡组可合并有关 JVM 和 Java 应用程序运行时的特定方面的数据。

JFR

  • 通常信息:关于 JVM、系统和记录的通常信息。
  • 内存:关于内存管理和垃圾收集的信息。
  • 代码:关于方法、异常错误、编译和类加载的信息。
  • 线程:关于应用程序中线程和锁的信息。
  • I/O:关于文件和套接字 I/O 的信息。
  • 系统:关于正在运行 JVM 的系统、进程和环境变量的信息。
  • 事件:关于记录中的事件类型的信息,能够根据线程或堆栈跟踪,按照日志或图形的格式查看,也可显示为直方图。

JFR通常信息

通常信息选项卡组显示有关 JVM、系统和记录的通常信息。

  • 概览选项卡提供系统、JVM 和 Java 应用程序的高级视图:堆使用量、CPU 整体占用率、GC 暂停时间、CPU 占用率、堆使用量、jmv启动时间和jvm完成版本
    通常信息概览
  • 提供有关 JVM 的通常信息
    通常信息jvm
    信息一目了然我就不废话了~(下同)
  • 列出用于启动 JVM 的系统属性
    通常信息系统属性

  • 记录选项卡提供有关记录、可在记录中使用的事件类型及其设置的信息
    通常信息记录

JFR内存

内存选项卡组显示有关内存管理和垃圾收集的信息

  • 提供内存使用量和垃圾收集的高级视图
    概览
  • 提供有关在记录时段内发生的垃圾收集活动的信息
    垃圾收集
  • 显示有关在记录时段内发生的垃圾收集的运行时间以及这些垃圾收集致使的暂停时间的信息
    gc时间
  • 有关垃圾收集器、Java 堆和年轻代的配置信息
    gc配置
  • 有关线程本地分配缓冲区 (TLAB) 内外的已分配对象的数据
    内存分配
    TLAB中的内存分配和TLAB外的内存分配事件。新TLAB分配提供了三种以上专供于分析新TLAB分配事件的虚拟化类型:类级、线程级和分析级的分配。分析级分配是对这三种类型的一个简单的栈追踪集合。TLAB外分配的内存标签页和新TLAB标签页的工做原理相同,仅仅在这个时间点是一致的

    限制:由于新TLAB的内存分配事件仅仅只是总的线程本地内存分配的样本,仅仅只有一个事件是很难说明实际状况的。更多的事件才会有更精确的图片。此外,若是分配事件的行为在记录期间变化很是大,那么这样也很难创建一个十分有说服力本地内存分配视图

  • 对象统计信息”选项卡提供有关占用 Java 堆超过 0.5% 的对象的信息
    内存对象统计信息

JFR代码

代码分析是Java性能分析重点,经过代码分析,能够清楚的知道系统运行时,哪些类及方法被高频率的调用

代码选项卡组包含有关方法、异常错误、编译和类加载的信息。该选项卡组用于分析与代码执行相关的 Java 应用程序的各个方面。若是 JVM 未生成任何 CPU 负载,线程一般处于等待状态,所以将不会在此选项卡组中获取大量有意义的统计信息

  • 提供 Java 应用程序中最经常使用的包和类的高级视图
    代码概览
  • 提供有关 Java 应用程序中最经常使用的方法的信息
    代码热点方法

    查看热点方法调用栈,能够了解到系统的主要计算资源消耗状况

  • 显示全部采样的堆栈跟踪 (从 main() 和 run() 开始)。
    代码调用树

    以模块化的方式直观的看到系统运行状态,显示最经常使用的堆栈跟踪,这对于查找 Java 应用程序中的瓶颈很是有帮助;

  • 显示有关由 Java 应用程序引起的错误和异常错误的信息
    代码异常错误

  • 有关记录期间生成的代码的信息
    代码编译
  • 有关记录期间加载和卸载的类的信息,以及有关每次加载和卸载的详细信息
    代码类加载

JFR线程

线程选项卡组包含有关 Java 应用程序中的线程和锁的信息。能够得知CPU占用率的分布(系统占用率、应用程序+JVM占用率)和活动线程数,判断CPU占用率分布是否合理。

  • 提供 CPU 负载和线程计数的高级视图
    线程概览
  • 有关 JVM 最常使用的线程的信息,详细列出了热点线程的数量及详情
    线程热点线程
  • 含有关锁、受阻线程和阻塞线程的信息。当存在性能问题但 CPU 负载不高时,某些线程可能被阻止。此选项卡对分析线程阻止问题和查找锁过多的根源很是有用
    线程争用
    线程争用是解决应用性能比较关键的步骤,定位线程争用的状况,可发幅度提高性能
  • 有关致使线程不执行 Java 代码 (线程停滞) 的事件的信息。能够查看线程休眠、等待、受阻等等所花费的时间
    线程等待时间
  • 有关记录期间发生的线程转储的信息
    线程线程转储
  • 有关 Java 应用程序中的锁定实例事件的信息
    线程锁定实例

JFR I/O

I/O 选项卡组包含有关文件以及套接字读取和写入的信息。此选项卡组可用于分析 Java 应用程序处理的数据量。

提供文件以及套接字读取和写入的高级视图
io概览
有关在记录期间进行的文件读取操做的信息
io文件读取
有关记录期间进行的文件写入操做的信息
io文件写入

JFR系统

系统选项卡组包含配置,列出正在运行的进程和正在运行 JVM 和 Java 应用程序的系统上的环境变量。

有关正在运行 Java 应用程序的硬件和软件的信息
这里写图片描述
含一个表,其中列出记录期间正在系统中运行的全部进程
这里写图片描述
含一个表,其中列出启动 JVM 时操做系统中设置的环境变量的键值对
这里写图片描述

JFR事件

事件选项卡组包含有关记录期间收集的事件的信息。JFR 记录每一个事件及其发生时间和与该事件关联的数据。JMC5.5共支持80多种事件。默认状况下,并无开启全部事件类型的记录,将对性能影响较大的 6 种类型事件关闭,以此达到将 JFR 对应用程的影响降到 1%之内,对性能影响的大小由开启记录的事件的类型和数量有关。

  • 概览
    概览
  • 收集的事件的日志
    日志

    事件标签组中的Log标签是查看每一个单独事件的绝佳地址

  • 显示各线程中的事件的时间表图形
    图形

  • 展现启动所记录事件的线程
    线程
    -记录的事件的汇集堆栈跟踪
    堆栈跟踪
  • 事件属性数据分布的文本表示形式
    直方图

经常使用事件类型

事件类型 JFR或其余工具获取 只能JFR获取
Classloading 被加载的类的数量和未被加载的类的数量 加载类的类加载器(classloader),加载一个类须要的时间
Thread statistics 建立线程的数量、销毁线程的数量、线程快照(dump) 阻塞指定线程的锁以及被指定锁阻塞的线程
Throwables 应用程序实用的异常类 应用程序抛出的异常和错误的数量以及建立异常和错误的栈记录
TLAB allocation 内存堆中已分配的数量、TLAB(Thread-Local Allocation Buffers)的大小 在内存对中指定对象的内存分配以及为这些对象分配内存的栈记录
File and socket I/O 进行 I/O 消耗的时间 每一次读写调用的时间消耗,读写操做消耗时间过长的文件或套接字
Monitor blocked 等待监控器的线程 阻塞某个线程的监控器、线程被阻塞的时间
Code cache 代码缓存的大小以及内容 从代码缓存中移除的方法、代码缓存的配置
Code compilation 哪些方法被编译,OSR 编译,编译耗时 JFR 中没有额外的信息,但 JFR 总结了多个源文件的信息
Garbage collection GC 的次数,包括每个阶段的次数、每一个代的大小 JFR 中没有额外的信息,但 JFR 总结了来自多个工具的信息
Profiling 检测分析和采样分析 JFR 并不能得到分析器得到的丰富信息,但 JFR 提供了更高层次的概述

附录

针对JMX的配置能够扩展了解一下,没兴趣能够略过

Java Mission Control 通讯

HotSpot JVM 使用基于远程方法调用 (RMI) 链接器的Java Management Extensions (JMX)技术启用监视和管理功能。这也称为基于RMI的JMX或简称 JMXRMI。要配置链接,启动 JVM 时必须设置如下系统属性:

  • -Dcom.sun.management.jmxremote
    此选项用于切换 JMXRMI 的使用。默认状况下启用该选项,所以无需设置该选项就可使用 JVM 的监视功能。要为 JVM 禁用 JMXRMI,请指定 -Dcom.sun.management.jmxremote=false。

  • -Dcom.sun.management.jmxremote.authenticate
    该选项用于切换对 JMXRMI 链接使用口令验证。默认状况下此选项是启用的。要为 JVM 禁用口令验证,请指定 -Dcom.sun.management.jmxremote.authenticate=false。

    注意:禁用验证是不安全的。任何知道 (或猜中) JMX 端口号和主机名的远程用户都可以监视和控制 Java 应用程序和 VM。虽然开发时这是可接受的,但对于生产系统不建议这样设置。

  • -Dcom.sun.management.jmxremote.port
    此选项用于设置 JMXRMI 链接的端口号。必须设置未使用的端口号才能启用 JVM 的监视和管理功能。

  • -Dcom.sun.management.jmxremote.ssl
    此选项用于切换安全套接字层 Sockets Layer (SSL) 验证的使用。默认状况下启用该选项。要为 JVM 禁用 SSL 验证,请指定 -Dcom.sun.management.jmxremote.ssl=false。

更多配置信息 请移步