首页 > 其他分享 >使用jvm工具排查系统问题

使用jvm工具排查系统问题

时间:2023-12-19 23:58:50浏览次数:40  
标签:JMX java sun server 排查 jvm Dcom 工具 rmi

java-jvm-tool

Jstatd 远程连接(推荐)

不用重启项目

远程机配置

[demo@localhost jvmtest]$ vi jstatd.all.policy

# 内容
grant codebase "file:/home/demo/jdk1.8.0_171/lib/tools.jar" {
permission java.security.AllPermission;
};

#IP为远程机外网IP(必须配置ip地址)
[demo@localhost jvmtest]$ nohup jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=172.16.29.61 -p 1099 -J-Djava.rmi.server.logCalls=true &
[1] 203089
[demo@localhost jvmtest]$ nohup: 忽略输入并把输出追加到"nohup.out"

[demo@localhost jvmtest]$
[demo@localhost jvmtest]$ tail -f nohup.out
java.security.AccessControlException: access denied ("java.util.PropertyPermission" "java.rmi.server.ignoreSubClasses" "write")
        at java.security.AccessControlContext.checkPermission(AccessControlContext.java:472)
        at java.security.AccessController.checkPermission(AccessController.java:884)
        at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
        at java.lang.System.setProperty(System.java:792)
        at sun.tools.jstatd.Jstatd.main(Jstatd.java:139)
十二月 19, 2023 2:28:49 下午 sun.rmi.server.UnicastServerRef logCall
较详细: RMI TCP Connection(1)-127.0.0.1: [127.0.0.1: sun.rmi.registry.RegistryImpl[0:0:0, 0]: void rebind(java.lang.String, java.rmi.Remote)]
十二月 19, 2023 2:28:50 下午 sun.rmi.server.UnicastServerRef logCall
较详细: RMI TCP Connection(2)-172.16.29.61: [172.16.29.61: sun.rmi.transport.DGCImpl[0:0:0, 2]: java.rmi.dgc.Lease dirty(java.rmi.server.ObjID[], long, java.rmi.dgc.Lease)]

# 记得防火墙开端口或者直接关闭防火墙
[root@localhost ~]# firewall-cmd --zone=public --add-port=1099/tcp --permanent
[root@localhost ~]# firewall-cmd --reload

客户端连接

在配置好环境变量的前提下,直接在cmd下执行 jvisualvm命令。

客户端运行jvisualvm客户端运行jvisualvm visualvm中添加远程机visualvm中添加远程机

选中添加的远程机,右击,点击【添加 jstatd 连接】,可以设置端口以及刷新时间。

jstatd端口配置jstatd端口配置 配置详情配置详情 最终结果最终结果

JMX 连接

服务端启动配置

-Dcom.sun.management.jmxremote.port=8999  \
-Dcom.sun.management.jmxremote.rmi.port=8999 \
-Dcom.sun.management.jmxremote.ssl=false  \
-Dcom.sun.management.jmxremote.authenticate=false \
-Djava.rmi.server.hostname=172.16.29.61 \

客户端连接

jvisualvm

首先,右击【远程】,点击【添加远程主机】

然后,右击添加的主机,点击【添加 JMX 连接】,输入对应端口号。

添加JMX连接添加JMX连接

jconsole

在配置好环境变量的前提下,直接在cmd下执行 jconsole命令。

新建连接新建连接 可检测死锁可检测死锁

补充

linux shell 参数换行(标准说法:续行)

\Enter,反斜杠后面紧跟回车,表示下一行是当前行的续行。(For Windows, use the carat (^) instead of the backslash (\) to break up a long command into multiple lines)

nohup java -jar -XX:MetaspaceSize=1024m \
-XX:MaxMetaspaceSize=2048m  \
-Dcom.sun.management.jmxremote.port=8999  \
-Dcom.sun.management.jmxremote.rmi.port=8999 \
-Dcom.sun.management.jmxremote.ssl=false  \
-Dcom.sun.management.jmxremote.authenticate=false \
-Djava.rmi.server.hostname=172.16.29.61 \
 -Dlog4j2.formatMsgNoLookups=true \
 ${APP_NAME} --server.port=8082 >> logs/8082.log 2>&1 &

问题

java.security.AccessControlException: access denied

可将文件 jstatd.all.policy 文件中的${JAVA_HOME}写成绝对路径即可。

参考

Monitoring and Management Using JMX Technology - Java SE Monitoring and Management Guide (oracle.com)

JDK Tools and Utilities

Monitoring and Management Using JMX Technology

Monitoring and Management Guide

Enabling remote JMX with password authentication only (apache.org)

JMX 入门(三)认证加密_jmx 加密-CSDN 博客

为 JMX JConsole 设置用户名密码登录_jconsole 连接本机默认用户名密码-CSDN 博客

选项 2:在不使用 SSL 的情况下设置 JMX 以进行客户机认证 - IBM 文档

标签:JMX,java,sun,server,排查,jvm,Dcom,工具,rmi
From: https://www.cnblogs.com/Share-happy/p/17915135.html

相关文章

  • 13.元素定位工具
    uiautomatorviewer工具安装工具的安装:AndroidSDK自带的界面分析工具打开 tools/bin 目录下的 uiautomatorviewer 程序uiautomatorviewer工具功能介绍第一个是通过分析给定的文件定位第二个是将当前界面截图并分析xml结构第三个与第二个功能类似,但它会对页面内容......
  • 如何使用多开工具同时运行多个浏览器窗口
    如何使用多开工具同时运行多个浏览器窗口在日常的网络使用中,我们经常需要同时打开多个浏览器窗口来进行不同的任务,比如同时查找资料、登录多个账号等。然而,大多数浏览器默认情况下只能打开一个窗口,这给我们的工作和学习带来了一些不便。为了解决这个问题,我们可以借助多开工具来同......
  • 电脑备忘录小工具怎么添加?怎么在电脑桌面添加备忘录?
    作为一名天天用电脑办公的上班族,如果你需要对某个项目或问题进入深入思考,想要快速记录想法和思路,这时候会选择什么样的记事方式呢?如果你需要记录常用的工作文字内容、工作注意事项、项目流程、待办的工作安排等,用什么样的方式记录更便捷?越来越多的职场人士抛弃纸质的记事本,而选择......
  • 10 个免费的 AI 图片生成工具分享
    原文:https://openaigptguide.com/ai-picture-generator/在人工智能(AI)图像生成技术的推动下,各类AI图片生成网站如雨后春笋般涌现,为我们的日常生活提供了丰富多彩的视觉体验。AI图片生成技术原理人工智能(AI)图片生成技术原理是通过计算机程序使用深度学习算法从大量的数据中学习......
  • 避坑合集|芝麻免押失败排查思路超详细总结(小程序场景)
    在使用小程序对接芝麻免押时,遇到了一些报错,估计把这个接口的坑都踩了个遍,这篇汇总一下我在芝麻免押上遇到的免押失败问题合集,大家注意避坑~对接流程......
  • uniffi-rs rust 多语言bindings 生成工具
    uniffi-rs是基于webidl描述定义,然后生成不同语言bindings的工具,此工具是在学习pyo3的maturin工具看到的,整理记录下参考玩法 目前支持的语言官方支持的包含了Kotlin,Swift,Python,Ruby当然还有不少社区的实现,比如支持C#以及golang说明以上就是一个简单的记录,后边尝试......
  • 教你用Line多开工具实现多账号切换
    使用Line多开工具实现多账号切换教程引言:Line是一款备受欢迎的即时通讯应用程序,许多用户可能需要同时管理多个账号。为了方便用户切换不同的账号,本文将介绍如何使用Line多开工具来实现多账号切换。请注意,本文仅提供技术指导,并不鼓励任何违反软件使用条款或法律法规的行为。第一......
  • 串口调试工具、方法和步骤
    串口调试工具、方法和步骤魏智勇​爱自控,爱科学,爱读书,爱生活​关注他 4人赞同了该文章串口是工业自动化系统中非常重要的通讯方式,自问世至今,以RS232、RS485为主的串口通讯方式,在工业自动化通讯系统始终占据非常重要的地位。对自动化工程师来说......
  • 符号执行manticore工具演练之发现缓冲区溢出漏洞
    符号执行之manticore工具演练参考资料:SANSSEC554https://docs.soliditylang.org/en/v0.8.0/ziion虚拟机:区块链智能合约中的kali(ziion涵盖演练中所以提及到的工具)动静态之分IDA是静态分析工具,常用于检测脆弱性;manticore是动态分析工具,常用于编写漏洞利用(符号执行:即执......
  • android读寄存器的工具-devmem
    一、概述在Linux/android开发中着实用到的调试工具并不是很多。devmem的方式是提供给驱动开发人员,在应用层能够侦测内存地址中的数据变化,以此来检测驱动中对内存或者相关配置的正确性验证。基本原理通过设备文件/dev/mem实现对物理内存的读写。二、用法内核中配置CONFIG_......