jstat -gcutil [PID] 2000 2000
-server server model
-client client model
PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误。这种错误常见在web服务器对JSP进行pre compile的时候。
-XX:MaxPermSize=256m set maximum Java PermGen size
Java heap space Heap size 设置 JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。Heap size 的大小是Young Generation 和Tenured Generaion 之和。提示:在JVM中如果98%的时间是用于GC且可用的Heap size 不足2%的时候将抛出此异常信息。提示:Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。
-XX:MaxNewSize=256m
-Xms50M set initial Java heap size
-Xmx50M set maximum Java heap size
-Xss set java thread stack size
-Xss这个参数需要严格的测试, 一般小的应用, 如果栈不是很深, 应该是128k够用的, 不过,我们的应用调用深度比较大, 还需要做详细的测试。 这个选项对性能的影响比较大。 建议使用256K的大小
-XX:NewRatio=1 eden/old 的比例
-XX:SurvivorRatio=8 s/e的比例
-XX:+UseParallelGC
-XX:ParallelGCThreads=8
-XX:+UseParallelOldGC 这个是JAVA 6出现的参数选项
-XX:LargePageSizeInBytes=128m 内存页的大小, 不可设置过大, 会影响Perm的大小。
-XX:+UseFastAccessorMethods 原始类型的快速优化
-XX:+DisableExplicitGC 关闭System.gc()
关于CMS的设置:
使用CMS的前提条件是你有比较的长生命对象, 比如有200M以上的OLD堆占用。 那么这个威力非常猛, 可以极大的提高的FGC的收集能力。 如果你的OLD占用非常的少, 别用了, 绝对降低你性能, 因为CMS收集有2个STOP WORLD的行为。 OLD少的清情况, 根据我的测试, 使用并行收集参数会比较好。
-XX:+UseConcMarkSweepGC 使用CMS内存收集
-XX:+AggressiveHeap 特别说明下:(我感觉对于做java cache应用有帮助)
* 试图是使用大量的物理内存
* 长时间大内存使用的优化,能检查计算资源(内存, 处理器数量)
* 至少需要256MB内存
* 大量的CPU/内存, (在1.4.1在4CPU的机器上已经显示有提升)
-XX:+UseParNewGC 允许多线程收集新生代
-XX:+CMSParallelRemarkEnabled 降低标记停顿
-XX+UseCMSCompactAtFullCollection 在FULL GC的时候, 压缩内存, CMS是不会移动内存的, 因此, 这个非常容易产生碎片, 导致内存不够用, 因此, 内存的压缩这个时候就会被启用。 增加这个参数是个好习惯。
分享到:
相关推荐
JVM与GC调优课程视频 〖课程介绍〗: JVM与GC调优课程视频 〖课程目录〗: 1.笔记/ ├── 第1篇-字节码篇.png?x-oss-process=style/pnp8 ├── 第2篇-类的加载篇.png?x-oss-process=style/pnp8 ├── 第3篇-运行时...
JVM性能监控与调优实战课程,作为整篇课程的重中之重,非常值得同学们参考学习。课程前端讲解了JVM的性能监控和调优的概述,对调优的的方法和工具进行讲解学习,让同学们掌握方法,理解知识。课程的中间阶段我们进行...
- **JVisualVM**:集成了多种JVM监控功能,如内存、线程、类加载、CPU使用率等。 - **JConsole**:提供GUI界面来监视JVM的性能和诊断问题。 - **JMX(Java Management Extensions)**:允许创建和注册MBeans来...
本压缩包"JVM监控,调优,分析工具(低配版arthas)-spectre.zip"提供了一个轻量级的Arthas版本——Spectre,它可以帮助开发者在资源有限的环境中进行JVM的监控、调优和分析。 Spectre,这个名字源于电影《007》系列...
Java生产环境下性能监控与调优详解视频教程 jstat查看JVM统计信息 jstack与线程的状态 MAT 分析内存溢出的方法 可视化工具分析GC日志 通过这套视频学习如何在生产环境下进行性能监控与调优。 视频在百度网盘中...
基于JDK命令行的监控 基于JVisualVM的可视化监控 基于Btrace的监控调试 Tomcat性能监控与调优 Nginx性能监控与调优 JVM层GC调优 JVM字节码与java代码层调优
**JVM监控工具** 1. **JConsole**:这是Java SDK自带的一个图形化监控工具,可以查看JVM的内存使用情况、线程状态、类加载情况等。 2. **VisualVM**:功能更为强大的多合一JVM分析工具,提供CPU和内存分析、线程...
jvm性能监控与调优.xmind
JVM下篇:性能监控与调优篇
jvm内存监控及调优方法,详细讲解jvm的原理以及常用调优手段
该文档是关于java虚拟机的原理,描述及调优视频,其中,详细讲述了jvm的运行机制,类装载器,GC算法,性能监控工具,堆,锁等内容。
标题中提到了JVM原理、JVM调优、JVM内存模型和JAVA并发,这些都是Java虚拟机(JVM)相关的核心概念。...了解这些知识点有助于开发者编写性能更优的代码,并在生产环境中对Java应用程序进行有效监控和调优。
Java生产环境下性能监控与调优详解 本课程将为你讲解如何在生产环境下对Java应用做性能监控与调优;通过本课程,你将掌握多种性能监控工具应用,学会定位并解决诸如内存溢出、cpu负载飙高等问题;学会线上代码调试...
- **监控工具使用**:使用JVisualVM、JConsole等工具监控JVM的运行状态,识别性能瓶颈。 - **代码优化**:减少对象创建次数,避免不必要的内存消耗。 总之,深入理解JVM的原理及其运行机制对于Java开发者来说至关...
在Java生产环境中,性能监控与调优是保证系统稳定、高效运行的关键环节。这份"Java生产环境下性能监控与调优详解课程笔记(完整版)"涵盖了多个重要的知识点,旨在帮助开发者和运维人员提升Java应用的性能。 一、Java...
文档还提到了吞吐量和错误率等性能指标的测试与监控。 最后,文档还提到了在Linux系统中执行MySQL脚本,虽然这部分内容没有进一步的细节,但可以推测在服务器端部署数据库操作时,优化数据库查询语句、使用索引、...
《使用jvisualvm进行JVM监控与调优详解》 在Java开发中,JVM(Java Virtual Machine)的性能监控和调优是至关重要的环节,它直接影响到应用程序的运行效率和稳定性。jvisualvm,作为Oracle JDK自带的一款强大的性能...
生产环境下性能监控与调优视频详解,在Java开发的路上,更进一步提升调优技能。
### JAVA JVM性能调优监控工具详解 在Java开发过程中,特别是在企业级应用中,经常会遇到各种性能瓶颈问题,如内存溢出(`OutOfMemoryError`)、内存泄露、线程死锁、锁争用等问题。这些问题如果不能及时有效地解决...
4. **JVM监控工具**:使用JVisualVM、JProfiler等工具监控内存、CPU、线程状态,定位性能瓶颈。 5. **代码优化**:减少对象创建,避免内存泄漏,使用StringBuilder而非String进行字符串拼接。 四、Oracle性能监控与...