监控运行中jar包的jvm信息
来源:互联网 发布:化学反应软件 编辑:程序博客网 时间:2024/04/30 03:32
开启jar包 运行端口 修改java -jar命令 加入如下命令参数(端口可以任意,但不要与其他应用端口冲突)
-Dcom.sun.management.jmxremote.port=8996-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
下面脚本是启动jar的脚本 功能在于启动jar 并且把属性传入到main函数中 初始化作用 仅供参考
#MonCenter start shell#set fileformat=unixps -ef | grep mon.jar | grep -v grep | awk '{print $2}' | xargs kill -9pros(){propties=''arr=()i=0while read line; do arr[i++]=$linedone < $1for data in ${arr[@]}do propties="$propties""$data""\r"done}pros /soc/etc/jmxremote.propertiesjmxremote=$proptiesecho "======jmxremote.properties========="echo $jmxremote#start MonCenternohup java -Xmx200m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/soc/var/ -Djava.library.path=/soc/lib/sigar/ -Dcom.sun.management.jmxremote.port=8996 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -jar /soc/lib/mon.jar $jmxremote >/soc/var/nli/monstart.file 2>&1 &tail -100f /soc/var/nli/monstart.file
获取jmx连接方法 url格式例如 String jmxUrl = "service:jmx:rmi:///jndi/rmi://" + ip + ":" + port+ "/jmxrmi";
/** * 获得MBeanServer 的连接 * * @param jmxUrl * @return * @throws IOException */ public static JMXConnector getMBeanServerConnection(String jmxUrl) throws IOException { JMXServiceURL url = new JMXServiceURL(jmxUrl); JMXConnector jmxc = null; try{ jmxc = JMXConnectorFactory.connect(url, null); }catch (Exception e) { logger.error("getMBeanServerConnection JMXConnector Exception "); return null; } return jmxc; }
获取连接
MBeanServerConnection mbsc = jmxConnection.getMBeanServerConnection();
获取线程信息例子
/** * 获得jvm 线程信息 */ public void getThreadInfo(JvmInfoBean jib,MBeanServerConnection jmxConnection){ ThreadMXBean op; try { op = ManagementFactory.newPlatformMXBeanProxy(jmxConnection, "java.lang:type=Threading", ThreadMXBean.class); System.out.println("ObjectName="+op.getObjectName()); System.out.println("仍活动的线程总数="+op.getThreadCount()); System.out.println("峰值="+op.getPeakThreadCount()); System.out.println("线程总数(被创建并执行过的线程总数)="+op.getTotalStartedThreadCount()); System.out.println("当初仍活动的守护线程(daemonThread)总数="+op.getDaemonThreadCount()); // long[] deadlockedIds = op.findDeadlockedThreads();// if(deadlockedIds != null && deadlockedIds.length > 0){ // ThreadInfo[] deadlockInfos = op.getThreadInfo(deadlockedIds); // System.out.println("死锁线程信息:"); // System.out.println("\t\t线程名称\t\t状态\t\t"); // for(ThreadInfo deadlockInfo : deadlockInfos){ // System.out.println("\t\t"+deadlockInfo.getThreadName()+"\t\t"+deadlockInfo.getThreadState() // +"\t\t"+deadlockInfo.getBlockedTime()+"\t\t"+deadlockInfo.getWaitedTime() // +"\t\t"+deadlockInfo.getStackTrace().toString()); // } // } } catch (IOException e) { e.printStackTrace(); } }
其他参数可以通过 jconsole进行获取
阅读全文
0 0
- 监控运行中jar包的jvm信息
- jar包的运行
- 打jar 包以及jar包的运行(输出打印信息)
- 读取jar包中所有类的信息
- 将jar包转换成可在不装JVM的电脑上运行的exe
- 验证 jar 包是否可以 运行 (test success)-- 为了解决 JVM not found 的报错
- 运行jar包的步骤
- JDeveloper 运行的Jar包
- 在运行jar包的过程中处理引用第三方jar包方法
- Java中可运行Jar包的Classpath
- Linux中启动和停止jar包的运行
- Linux中启动和停止jar包的运行
- Linux中启动和停止jar包的运行
- Linux中启动和停止jar包的运行
- Linux中启动和停止jar包的运行
- linux-linux中运行java的jar包.
- Linux中启动和停止jar包的运行
- java中打jar包和运行jar包
- spark on yarn cluster 与 client 模式的区别
- HTML小结及css基础属性
- 未来币nxt 启动分析(1)
- 轮播图的实现原理
- Mysql 忘记root密码的解决方法
- 监控运行中jar包的jvm信息
- C++程序辨别数字、字母和汉字
- IPlot示波器
- 高可用性hadoop集群的搭建
- 线程池的执行流程
- windows7下编译boost1.46.1库,生成32位库文件
- Scanner类中nextXXX()和NextLine()
- Windows窗体计算平方根
- 解决方案:SSM+vue+webpack+vue-resource+vue-route路由项目验证session过期跳转至登陆界面