1 缘起
最近学习《深入理解Java虚拟机》, 读完核心内容:第三章, 开始进入监控实践,其中,VisualVM之前没有使用过, 最重要原因是VisualVM可以免费学习和使用, 以VisualVM作为监控工具进行监控实践。 分享内容如下。
2 启动服务
本文使用VisualVM检测远程SpringBoot服务,即 VisualVM与SpringBoot服务不在同一台机器, 因此,SpringBoot服务启动时要开启RMI, 启动样例如下:
java -jar \
-Djava.rmi.server.hostname=192.168.211.129 \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=9122 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false \
/home/xindaqi/project/tutorial/tutorial.jar
序号 | 属性 | 描述 |
---|
1 | java.rmi.server.hostname | 运行SpringBoot服务的主机名 | 2 | com.sun.management.jmxremote.port | jmx端口 | 3 | com.sun.management.jmxremote.ssl | 标识位。是否开启SSL | 4 | com.sun.management.jmxremote.authenticate | 标识位。是否开启认证 |
3 启动Visual VM
3.1 安装VisualVM
两种方式: (1)在Java安装环境中,找到:path/bin/jvisualvm.exe (2)下载安装VisualVM:官网http://visualvm.github.io/ 或者免费下载:https://download.csdn.net/download/Xin_101/85585189 在bin中找到:visualvm.exe 本文采用独立安装的方式启动VisualVM,版本为:2.1.3。
3.2 启动
启动页面如下图所示。
4 配置
本文使用VisualVM检测远程SpringBoot服务, 因此需要在Remote中操作,测试步骤及结果如下文。
4.1 添加远程主机
在Remote中添加远程主机,即运行SpringBoot服务的机器。 SpringBoot主机名为:192.168.211.129,配置如下图所示。
4.2 添加JMX连接
接下来添加JMX连接,获取运行的应用, 配置如下图所示。 添加具体的应用,格式为:hostname:port, 其中,hostname为SpringBoot的主机名,port为SpringBoot参数中的RMI端口, 配置如下图所示。
5 监控
5.2 控制面板
完成连接后,接下来打开控制面板, 如下图所示。
5.3 监控属性
控制面板首页监控的属性有:Monitor、Threads和Sampler,如下图所示。
序号 | 属性 | 描述 |
---|
1 | Monitor | 监控CPU使用率、堆使用率、类数量和线程数量 | 2 | Threads | 监控线程状态:Running、Sleeping、Wait、Park和Monitor | 3 | Sampler | 监控CPU和内存占用 |
5.3.1 Monitor
Monitor监控的信息有CPU使用率、堆使用率、类数量和线程数量, 监控指标如下图所示。
5.3.2 Threads
Threads监控线程状态:Running、Sleeping、Wait、Park和Monitor, 监控信息如下图所示。
5.3.3 Sampler
Sampler监控CPU和内存占用,对CPU和内存使用进行采样, 采样信息如下图所示。
6 小结
要点: (1)Monitor:监控CPU使用率、堆使用率、类数量和线程数量; (2)Threads:监控线程状态:Running、Sleeping、Wait、Park和Monitor; (3)Sampler:监控CPU和内存占用; (4)VisualVM两种启动方式:使用JDK内置的VisualVM或者使用独立下载的VisualVM。
|