【性能测试】:JVM内存监控策略的方法,以及监控结果说明

摘要:
3.右键单击IP地址,单击添加JMI连接。4.输入监控端口。此设置的启用端口为1099。您也可以设置其他未占用的端口。

JVM内存监控主要在稳定性压测期间,监控应用服务器内存泄露等问题;

  • 【JVM远程监控设置】

1、打开WAS控制台:https://ip:port/ibm/console/login.do

2、进入路径:应用程序服务器 > Server_Name > 进程定义> Java 虚拟机

3、在通用JVM参数中开启远程访问,并设置远程访问端口为1099

-Djavax.management.builder.initial= -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=1099

4、重启应用

JDK1.6开始自带的VisualVM就是不错的监控工具。

       这个工具就在JAVA_HOMEin目录下的jvisualvm.exe, 双击这个文件就能看到一个比较直观的界面

【性能测试】:JVM内存监控策略的方法,以及监控结果说明第1张

远程访问JVM

1、右键点击【远程】,选择添加远程主机

【性能测试】:JVM内存监控策略的方法,以及监控结果说明第2张

2、输入远程主机名,此处输入远程主机的IP地址后,点击确定。

3、右键IP地址,点击添加JMI连接

【性能测试】:JVM内存监控策略的方法,以及监控结果说明第3张

4、输入监控端口,本次设置开启的端口为1099,亦可设置其它不被占用的端口。

5、双击ip:port后,即可打开JVM的整体监控页面

JVM监控

【性能测试】:JVM内存监控策略的方法,以及监控结果说明第4张

 【性能测试】:JVM内存监控策略的方法,以及监控结果说明第5张

可查看堆空间大小分配(年轻代、年老代、持久代分配)

提供即时的垃圾回收功能

垃圾监控(长时间监控回收情况)

  • 【ThreadDump分析】

1,抓取Thread Dump

方法1:右键 ip:port后,选择【线程Dump】

【性能测试】:JVM内存监控策略的方法,以及监控结果说明第6张

方法2:在线程tab页中,右上角有个线程Dump按钮

【性能测试】:JVM内存监控策略的方法,以及监控结果说明第7张

2,分析Thread Dump

 【性能测试】:JVM内存监控策略的方法,以及监控结果说明第8张

locked表示该线程锁住了该锁

【性能测试】:JVM内存监控策略的方法,以及监控结果说明第9张

图中的0X10032710和0X10032718互相等待,互相锁死

免责声明:文章转载自《【性能测试】:JVM内存监控策略的方法,以及监控结果说明》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇React Native for Web配置误删安卓Android sdk包,打包出现错误解决下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java多线程基础:进程和线程之由来

  在前面,已经介绍了Java的基础知识,现在我们来讨论一点稍微难一点的问题:Java并发编程。当然,Java并发编程涉及到很多方面的内容,不是一朝一夕就能够融会贯通使用的,需要在实践中不断积累。由于并发肯定涉及到多线程,因此在进入并发编程主题之前,我们先来了解一下进程和线程的由来,这对后面对并发编程的理解将会有很大的帮助。   下面是本文的目录大纲:  ...

多线程并发详解

一、Java 线程实现/创建方式   注意:   • 新建的线程不会自动开始运行,必须通过start( )方法启动   • 不能直接调用run()来启动线程,这样run()将作为一个普通方法立即执行,执行完毕前其他线程无法并发执行   • Java程序启动时,会立刻创建主线程,main就是在这个线程上运行。当不再产生新线程时,程序是单线程的  1.1 继承...

OpenMP 线程同步之临界区

多核/多线程编程中肯定会用到同步互斥操作。除了互斥变量以为,就是临界区。 临界区是指在用一时刻只允许一个线程执行的一段用{...},包围的代码段。 在OpenMP中临界区声明方法如下: #pragma omp critical [(name)] //[]表示名字可选 { //需要同一时刻只能有一个线程访问的代码 } 如下面的代码: 1 #include &...

jvm内存模型和内存分配

1.什么是jvm? (1)jvm是一种用于计算设备的规范,它是一个虚构出来的机器,是通过在实际的计算机上仿真模拟各种功能实现的。 (2)jvm包含一套字节码指令集,一组寄存器,一个栈,一个垃圾回收堆和一个存储方法域。 (3)JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改...

判断当前线程所处的状态 (转)以及终止当前线程

 在C#中,线程对象Thread使用ThreadState属性指示线程状态,它是带Flags特性的枚举类型对象。    ThreadState 为线程定义了一组所有可能的执行状态。一旦线程被创建,它就至少处于其中一个状态中,直到终止。在公共语言运行时中创建的线程最初处于Unstarted状态中,而进入运行时的外部线程则已经处于Running状态中。通过调...

C#如何优雅地取消一个流程(非Thread.Abort方法)

一. Thread.Abort() 的缺点 我们使用 Thread.Abort() 来中止一个包裹着某个流程的线程,虽然 C# 并不会像 Thread.Suspend() 提示过时。但是在使用 Thread.Abort() 的时候,确实存在很多的问题: 1. 该方式中止线程是通过在线程执行的时候抛出 ThreadAbortException 异常来实现的。...