文档章节

常用jvm参数配置以及提供系统堆益处日志监控方法

小石头哥
 小石头哥
发布于 2017/04/08 22:25
字数 430
阅读 7
收藏 0

-verbose:gc

-XX:+printGC

可以打印GC的简要信息

-XX:+PrintGCDetails

打印GC详细信息

-XX:+PrintGCTimeStamps

打印CG发生的时间戳

-Xloggc:log/gc.log

指定GC log的位置,以文件输出 帮助开发人员分析问题

-XX:+PrintHeapAtGC 每次一次GC后,都打印堆信息

-XX:+TraceClassLoading 监控类的加载

-XX:+PrintClassHistogram 按下Ctrl+Break后,打印类的信息:

-Xmx –Xms 指定最大堆和最小堆

System.out.print("Xmx=");

System.out.println(Runtime.getRuntime().maxMemory()/1024.0/1024+"M");

System.out.print("free mem=");

System.out.println(Runtime.getRuntime().freeMemory()/1024.0/1024+"M");

System.out.print("total mem=");

System.out.println(Runtime.getRuntime().totalMemory()/1024.0/1024+"M"); 代码查看对内存使用情况

-Xmn 设置新生代大小

-XX:NewRatio 新生代(eden+2*s)和老年代(不包含永久区)的比值 4 表示 新生代:老年代=1:4,即年轻代占堆的1/5

-XX:SurvivorRatio 设置两个Survivor区和eden的比 8表示 两个Survivor :eden=2:8,即一个Survivor占年轻代的1/10

-XX:+HeapDumpOnOutOfMemoryError OOM时导出堆到文件

-XX:+HeapDumpPath 导出OOM的路径

Xmx20m -Xms5m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=d:/a.dump

-XX:OnOutOfMemoryError 在OOM时,执行一个脚本

"-XX:OnOutOfMemoryError=D:/tools/jdk1.7_40/bin/printstack.bat %p“ 当程序OOM时,在D:/a.txt中将会生成线程的dump 可以在OOM时,发送邮件,甚至是重启程序

总结 根据实际事情调整新生代和幸存代的大小 官方推荐新生代占堆的3/8 幸存代占新生代的1/10 在OOM时,记得Dump出堆,确保可以排查现场问题

栈大小配置 -Xss 通常只有几百K 决定了函数调用的深度 每个线程都有独立的栈空间 局部变量、参数 分配在栈上

© 著作权归作者所有

共有 人打赏支持
上一篇: GC算法总结
下一篇: ActiveMQ安装
小石头哥

小石头哥

粉丝 8
博文 18
码字总数 14404
作品 0
广州
后端工程师
私信 提问
IBM和SAP开源其JVM诊断工具

IBM最近发布了其Java诊断工具套件,该套件包含如下工具:面向Java的产品转储分析器(Dump Analyzer)、处理垃圾收集(GC,即Garbage Collection)的Extensible Verbose Toolkit和Java锁分析器...

JavaGG
2010/03/24
0
0
JVM参数调优:Eclipse启动实践

JVM参数调优:Eclipse启动实践 本文主要参考自《深入理解 Java 虚拟机》。 这本书是国人写的难得的不是照搬代码注释的且不是废话连篇的技术书,内容涵盖了 Java 从源码到字节码到执行的整个过...

天天顺利
2015/01/13
0
0
JVM性能调优实践——JVM篇

前言 在遇到实际性能问题时,除了关注系统性能指标。还要结合应用程序的系统的日志、堆栈信息、GClog、threaddump等数据进行问题分析和定位。关于性能指标分析可以参考前一篇JVM性能调优实践...

lijingyao8206
05/24
0
0
Java系列笔记 - JVM监控与调优

光说不练假把式,学习Java GC机制的目的是为了实用,也就是为了在JVM出现问题时分析原因并解决之。通过学习,我觉得JVM监控与调优主要的着眼点在于如何配置、如何监控、如何优化3点上。下面就...

明舞
2015/08/18
0
0
JVM汇总--jvm调优-命令篇

GC的最根本原因:垃圾收集器的工作就是清除Java创建的对象,垃圾收集器需要清理的对象数量以及要执行的GC数量均取决于已创建的对象数量。因此,为了使你的系统在GC上表现良好,首先需要减少创...

素雷
04/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Mariadb二进制包安装,Apache安装

安装mariadb 下载二进制包并解压 [root@test-a src]# wget https://downloads.mariadb.com/MariaDB/mariadb-10.2.6/bintar-linux-glibc_214-x86_64/mariadb-10.2.6-linux-glibc_214-x86_64.t......

野雪球
今天
3
0
ConcurrentHashMap 高并发性的实现机制

ConcurrentHashMap 的结构分析 为了更好的理解 ConcurrentHashMap 高并发的具体实现,让我们先探索它的结构模型。 ConcurrentHashMap 类中包含两个静态内部类 HashEntry 和 Segment。HashEnt...

TonyStarkSir
今天
3
0
大数据教程(7.4)HDFS的java客户端API(流处理方式)

博主上一篇博客分享了namenode和datanode的工作原理,本章节将继前面的HDFS的java客户端简单API后深度讲述HDFS流处理API。 场景:博主前面的文章介绍过HDFS上存的大文件会成不同的块存储在不...

em_aaron
昨天
4
0
聊聊storm的window trigger

序 本文主要研究一下storm的window trigger WindowTridentProcessor.prepare storm-core-1.2.2-sources.jar!/org/apache/storm/trident/windowing/WindowTridentProcessor.java public v......

go4it
昨天
7
0
CentOS 生产环境配置

初始配置 对于一般配置来说,不需要安装 epel-release 仓库,本文主要在于希望跟随 RHEL 的配置流程,紧跟红帽公司对于服务器的配置说明。 # yum update 安装 centos-release-scl # yum ins...

clin003
昨天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部