某XX生产环境,内存使用率总是居高不下,怀疑是内存溢出,现使用visualVM对其进行内存与线程分析,并反馈给研发部门。
jVisualVM 是 Oracle 提供的免费 Java 监控和性能分析工具,内置于 JDK 中(JDK 1.6+ 至 JDK 8,JDK9以上不再自带visualVM,需要手动安装)。以下是它的主要功能、应用场景和示例说明:
java.lang.String
实例占比)。-Dcom.sun.management.jmxremote
)。访问本地 JVM 【调试开发环境或本地运行的 Java 应用】
访问远程 JVM 【监控生产环境或服务器上的 Java 应用】
方式 | 功能完整性 | 安全性 | 配置复杂度 | 适用场景 |
---|---|---|---|---|
JMX | 完整 | 中(需手动加固) | 高 | 生产环境(需远程深入分析) |
jstatd | 基础监控 | 低(RMI 明文传输) | 高 | 快速查看基础指标 |
SSH + X11 | 完整 | 高(加密隧道) | 低(需 GUI 支持) | 服务器无端口开放但允许 SSH + GUI |
IP地址 | jdk版本 | 系统版本 |
---|---|---|
172.22.33.20 | jdk8 | openeuler 22.03 LTS SP4 |
用于 SSH 的 X11 转发
yum install xorg-x11-xauth xorg-x11-fonts-* xorg-x11-font-utils xorg-x11-fonts-Type1 xclock xterm -y
AllowTcpForwarding yes
X11Forwarding yes
X11UseLocalhost no
[root@openeuler ~]# sshd -t
[root@openeuler ~]# systemctl restart sshd
下载最新的就好,下载完了之后,解压到服务器上
visualvm_jdkhome="/home/application/jdk-11.0.22"
[root@openeuler ~]# /root/visualvm_2110/bin/visualvm
参考下面的👇的文章: