-
jvm 调试工具
-
jvm线上部署
- 响应时间优先:
- 吞吐量优先
- 参数配置
- 参考资料
jvm 调试工具
-
gc时间查看 jstat -gcutil pid
S0 S1 E O P YGC YGCT FGC FGCT GCT 0.00 85.38 39.77 27.86 59.94 83 0.444 4 0.657 1.101
S0:Heap上的Survivor space 0段 已使用空间的百分比
S1:Heap上的Survivor space 1段已使用的空间百分比
E:Heap上Eden space已使用的空间百分比
O:Heap上的Old space段已使用的空间百分比
P:Perm space已使用的空间百分比
-
jvm 堆内存使用情况
- jmap -live:histo pid 查看jvm中生存的类对象,按照实例数和占用空间大小排序
-
jmap -heap pid 查看jvm 内存占用情况
-
jvm线程调试
ps -mp pid -o THREAD,tid,time |
nid 转16进制 printf "%x\n" tid
显示jvm每个线程cpu使用率,如果jvm占用cpu过高,据此查看 查出对应的线程ID号。然后根据jstack -F pid 或 jstack pid查看jvm运行的线程,根据thread id找到对应的线程,可以找到占用cpu的代码。
jvm线上部署
响应时间优先:
年老代使用并发收集器,所以其大小需要小心设置,一般要考虑并发会话率和会话持续时间等一些参数。如果堆设置小了,可以会造成内存碎片、高回收频率以及应用暂停而使用传统的标记清除方式;如果堆大了,则需要较长的收集时间。最优化的方案,一般需要参考以下数据获得:
1. 并发垃圾收集信息
2. 持久代并发收集次数
3. 传统GC信息
4. 花在年轻代和年老代回收上的时间比例
减少年轻代和年老代花费的时间,一般会提高应用的效率
吞吐量优先
一般吞吐量优先的应用都有一个很大的年轻代和一个较小的年老代。原因是,这样可以尽可能回收掉大部分短期对象,减少中期的对象,而年老代尽存放长期存活对象。
参考资料:jvm调优案例及参数详解
参数配置
-
args="-J-server -Xms10000M -Xmx10000M -Xmn4800M -Xss256k -XX:PermSize=256m -XX:MaxPermSize=512m -XX:+UseParNewGC -XX:ParallelGCThreads=8 -XX:SurvivorRatio=2 -XX:TargetS
urvivorRatio=50 -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=5 -XX:CMSMaxAbortablePrecleanT
ime=5000 -XX:CMSInitiatingOccupancyFraction=70 -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Djmagick.systemclassloader=false -DXCE_USE_DBCP -DPASSPORT_CREATE_CLUSTER"
args="-J-server -Xms10000M -Xmx10000M -Xmn4800M -Xss256k -XX:PermSize=256m -XX:MaxPermSize=512m -XX:+UseParNewGC -XX:ParallelGCThreads=8 -XX:SurvivorRatio=2 -XX:TargetS
urvivorRatio=50 -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=5 -XX:CMSMaxAbortablePrecleanT
ime=5000 -XX:CMSInitiatingOccupancyFraction=70 -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Djmagick.systemclassloader=false -DXCE_USE_DBCP -DPASSPORT_CREATE_CLUSTER"
相关推荐
### JVM工具、参数调优与调试技巧 #### 一、JVM工具 ##### 1. jps:虚拟机进程状况工具 - **简介**:`jps` 是一个用于显示当前运行的所有Java虚拟机进程(JVMs)的简单工具。它会列出每个JVM的PID(进程ID)以及...
《JVM工具、参数调优&调试技巧》 在Java开发中,理解并掌握JVM(Java虚拟机)的工作原理及优化技术是至关重要的。本文将深入探讨JVM的工具、参数调优以及调试技巧,旨在帮助开发者提升应用性能,减少系统故障。 一...
标题中的“ie11登陆ebs的jvm工具”指的是在Windows 10操作系统中,使用Internet Explorer 11浏览器登录Oracle E-Business Suite (EBS)时,可能需要一个特定版本或配置的Java Virtual Machine (JVM)工具。EBS是Oracle...
了解并掌握JVM工具和参数调优技巧,可以帮助我们提升应用程序的性能,减少内存泄漏,优化资源利用,以及解决运行时问题。以下将详细介绍相关知识点。 一、JVM工具 1. **jps(Java Virtual Machine Process Status ...
java 测试jvm工具可执行加入java 测试jvm工具可执行加入java 测试jvm工具可执行加入java 测试jvm工具可执行加入java 测试jvm工具可执行加入java 测试jvm工具可执行加入java 测试jvm工具可执行加入java 测试jvm工具可...
IntelliJ IDEA(简称Idea)作为广受欢迎的Java集成开发环境,提供了一系列强大的工具来帮助开发者进行性能调优,其中就包括JProfiler11这款强大的JVM内存分析工具。本文将详细介绍如何使用Idea中的JProfiler11插件,...
### JVM监控工具使用入门 #### 引言 Java虚拟机(JVM)是运行Java程序的基础环境,其性能直接影响到应用程序的稳定性和响应速度。为了更好地理解和优化JVM的运行状态,开发人员需要掌握一系列的监控工具和技术。...
为了确保应用的高效运行和优化,开发者通常会使用一系列的JVM分析工具。以下是对这些工具的详细介绍: 1. **jmap**: `jmap` 是一个命令行工具,它允许开发者获取堆内存的详细信息,包括堆的配置、对象统计、类...
Java虚拟机工具接口(JVMTI,Java Virtual Machine Tool Interface)是Java开发工具包(Java SDK)的一个核心组件,自Java 2 SDK Standard Edition 1.5.0版本起引入,用于替代实验性的JVMPI(Java Virtual Machine ...
VisualVM是一款强大的Java诊断工具,它提供了丰富的功能来帮助开发者理解和优化JVM上的应用程序。VisualVM_20可能是该工具的一个更新版本,提供了更多改进和新特性。 VisualVM主要包含以下几方面的功能: 1. **...
MAT,全称Memory Analyzer Tool,是IBM开发的一款强大的Java虚拟机(JVM)内存分析工具。它被广泛用于诊断和解决Java应用程序中的内存泄漏、内存消耗过高以及性能问题。MAT提供了一种直观的方式来查看和理解堆内存的...
JVM深入理解,JVM调优技巧
例如,VisualVM是Oracle提供的一款强大的多合一JVM工具,它包含了丰富的功能,如内存分析、线程监控、类加载统计以及CPU和GC(垃圾收集)性能监视等。 1. **线程监控**:在Java应用中,线程是执行任务的基本单位。...
本文将深入探讨JVM内存结构、监控工具及其在调优和GC优化中的应用。 **JVM内存机构** JVM内存主要分为以下几个区域: 1. **堆内存(Heap)**:这是JVM中最大的一块内存区域,主要用于存储对象实例。堆被进一步...
VisualVM是一款强大的Java虚拟机(JVM)性能分析和监视工具,由Oracle公司开发并提供。它集成了一系列功能,如内存分析...无论是本地还是远程,VisualVM都是一个强大且易用的JVM工具,值得在日常开发和调优工作中使用。
了解并熟练运用这些JVM工具,可以帮助开发者和运维人员更好地理解Tomcat服务器的运行状况,及时发现和解决性能问题,提升整体系统的稳定性和效率。在实际工作中,根据具体需求选择合适的工具进行监控和诊断,是优化...
深入理解Hotspot源码,有助于开发者优化Java应用,理解内存管理、垃圾收集的工作原理,以及如何利用JVM工具进行性能调优。对于Java程序员来说,这是一门必不可少的进阶课程,能提升代码编写和问题排查的效率,使应用...
MAT JVM内存分析工具可以帮助开发者深入理解Java虚拟机(JVM)的内存管理机制,通过分析堆内存快照来识别内存消耗异常的情况。 首先,MAT提供了丰富的视图来帮助用户查看内存状态,例如“概述”视图可以快速了解堆...