深入理解JVM(三)——配置参数】的更多相关文章

一.JVM配置参数分为三类参数: 1.跟踪参数 2.堆分配参数 3.栈分配参数 这三类参数分别用于跟踪监控JVM状态,分配堆内存以及分配栈内存. 二.跟踪参数 跟踪参数用于跟踪监控JVM,往往被开发人员用于JVM调优以及故障排查. 1.当发生GC时,打印GC简要信息 使用-XX:+PrintGC或-verbose:gc参数 这两个配置参数效果是一样的,都是在发生GC时打印出简要的信息,例如执行代码: 1: public static void main(String[] args) 2: { 3…
请看下面题目: 对于jvm内存配置参数: -Xmx10240m -Xms10240m -Xmn5120m -XXSurvivorRatio=3 其最小内存值和Survior区总大小分别是: a. 5120m,1024m b.5120m,2048m c.10240m,1024m d.10240m,2048m 答案是:d. 首先必须知道几个参数的含义: -Xmx :堆的最大值 -Xms :堆的最小值 -Xmn :堆年轻代大小 -XXSurvivorRatio:Eden区和Survior区的占用比例.…
转载:http://www.nowcoder.com/questionTerminal/093bfa948d144ce3b0a68b938ae8b4ec 对于JVM内存配置参数: -Xmx10240m -Xms10240m -Xmn5120m -XXSurvivorRatio=3 ,其最小内存值和Survivor区总大小分别是() 5120m,1024m 5120m,2048m 10240m,1024m 10240m,2048m D -Xms10240m 初始堆大小即最小内存值  XXSurvi…
JVM配置参数分为三类参数: 1.跟踪参数 2.堆分配参数 3.栈分配参数 这三类参数分别用于跟踪监控JVM状态,分配堆内存以及分配栈内存. 跟踪参数 跟踪参数用于跟踪监控JVM,往往被开发人员用于JVM调优以及故障排查. 1.当发生GC时,打印GC简要信息 使用-XX:+PrintGC或-verbose:gc参数 这两个配置参数效果是一样的,都是在发生GC时打印出简要的信息,例如执行代码: 1: public static void main(String[] args) 2: { 3: by…
JVM是多数开发人员视为理所当然的Java功能和性能背后的重负荷机器.然而,我们很少有人能理解JVM是如何进行工作的—像任务分配和垃圾收集.转动线程.打开和关闭文件.中断和/或JIT编译Java字节码,等等. 不熟悉JVM将不仅会影响应用程序性能,而且当JVM出问题时,尝试修复也会很困难. 本文将介绍一些命令行标志,您可以使用它们来诊断和调优您的Java虚拟机性能. 1.DisableExplicitGC 我已记不清有多少次用户要求我就应用程序性能问题提供咨询了,其实只要跨代码快速运行grep,…
jvm setting的参数确实比较多(Oracle官网Java HotSpot VM Options),但是作为一名java开发者,那几个最常用最基本的参数设置和意义一定要死记和理解.这里推荐一个网站http://jvmmemory.com/在上面你可以方便的设置jvm的参数(当然这个网站上也是有些错误的,最可靠的还是去查下Oracle的文档). Notice:这里我们默认以Linux JAVA8 hotspot环境为例,其Oracle官网Java Platform, Standard Edi…
3.1 关于垃圾收集和内存分配 垃圾收集和内存分配主要针对的区域是Java虚拟机中的堆和方法区: 3.2 如何判断对象是否“存活”(存活判定算法) 垃圾收集器在回收对象前判断其是否“存活”的两个算法: 1.引用计数算法:一个对象在被引用之后这个计数器就加1,不被引用之后则减1,如果是0,那么就被回收,这个一般不被主流Java虚拟机所使用,原因:对象的循环引用会导致计数器始终不为0,那么就无法回收. 2.可达性分析算法:通过GC roots对象作为起点,向下搜索和它进行有效链接的对象,如果对象最终…
1.-Xms初始堆大小默认物理内存的1/64(<1GB)(官方建议)2.-Xmx最大堆大小默认物理内存的1/4(<1GB)(官方建议),实际中建议不大于4GB3.一般建议设置 -Xms=-Xmx最大堆大小好处是避免每次在gc后,调整堆的大小,减少系统内存分配开销4.整个堆大小=年轻代大小+年老代大小+持久代大小 jvm新生代(young generation)1.新生代=1个Eden区+2个Survivor区2.-Xmn 年轻代大小(1.4 or lator) -XX:NewSize, -XX…
maven是使用java启动的,因此依赖JVM,那么如何修改JVM参数? MAVEN_OPTS 在系统的环境变量中,设置MAVEN_OPTS,用以存放JVM的参数,具体设置的步骤,参数示例如下: MAVEN_OPTS=-Xms256m -Xmx768m -XX:PermSize=128m -XX:MaxPermSize=256M 或者临时设置 export MAVEN_OPTS=-Xms256m -Xmx768m -XX:PermSize=128m -XX:MaxPermSize=256M 在m…
Java虚拟机的内存模型分为五个部分.各自是:程序计数器.Java虚拟机栈.本地方法栈.堆.方法区. 这五个区域既然是存储空间,那么为了避免Java虚拟机在执行期间内存存满的情况,就必须得有一个垃圾收集者的角色.不定期地回收一些无效内存,以保障Java虚拟机可以健康地持续执行. 这个垃圾收集者就是寻常我们所说的"垃圾收集器".那么垃圾收集器在何时清扫内存?清扫哪些数据?这就是接下来我们要解决的问题. 程序计数器.Java虚拟机栈.本地方法栈都是线程私有的,也就是每条线程都拥有这三块区域…
一 对象的内存布局: 在HotSpot虚拟机中,对象在内存中存储的布局可以分为3块区域:对象头(Header),实例数据(Instance Data)和对齐填充(Padding). HotSpot的对象头包括两部分信息,一部分存储对象运转时自身信息,例如hashCode,GC分代年龄,锁状态标志,线程持有的锁,偏向线程id,偏向时间戳等,这部分数据的长度在32和64位虚拟机中分别为32和64位,官方称之为“Mark World”.对象在运行时产生的数据很多,其实早已经超出了32或64位BitMa…
-Xmx:最大堆大小 -Xms:初始堆大小 -Xmn:年轻代大小 -XXSurvivorRatio:年轻代中Eden区与Survivor区的大小比值 年轻代5120m, Eden:Survivor=3,Survivor区大小=1024m(Survivor区有两个,即将年轻代分为5份,每个Survivor区占一份),总大小为2048m. -Xms初始堆大小即最小内存值为10240m…
前言 ​ 本章节属于Java进阶系列,前面关于设计模式讲解完了,有兴趣的童鞋可以翻看之前的博文,后面会讲解JVM的优化,整个系列会完整的讲解整个java体系与生态相关的中间件知识.本次将对jvm有更深入的学习,我们不仅要让程序能跑起来,而且是可以跑的更快!可以分析解决在生产环境中所遇到的各种"棘手"的问题,比如运行的应用卡住了,日志不输出,程序没有反应,CPU负载突然升高,多线程应用下,如何分配线程数量等. JVM介绍 什么是JVM ​ 作为java工程师,对于jvm肯定不陌生.JVM…
前言 ​ 本章节属于Java进阶系列,前面关于设计模式讲解完了,有兴趣的童鞋可以翻看之前的博文,后面会讲解JVM的优化,整个系列会完整的讲解整个java体系与生态相关的中间件知识.本次将对jvm有更深入的学习,我们不仅要让程序能跑起来,而且是可以跑的更快!可以分析解决在生产环境中所遇到的各种"棘手"的问题,比如运行的应用卡住了,日志不输出,程序没有反应,CPU负载突然升高,多线程应用下,如何分配线程数量等. JVM介绍 什么是JVM ​ 作为java工程师,对于jvm肯定不陌生.JVM…
JVM配置参数分为三类参数: 1.跟踪参数 2.堆分配参数 3.栈分配参数 这三类参数分别用于跟踪监控JVM状态,分配堆内存以及分配栈内存. 跟踪参数 跟踪参数用于跟踪监控JVM,往往被开发人员用于JVM调优以及故障排查. 1.当发生GC时,打印GC简要信息 使用-XX:+PrintGC或-verbose:gc参数 这两个配置参数效果是一样的,都是在发生GC时打印出简要的信息,例如执行代码: 1: public static void main(String[] args) 2: { 3: by…
常用JVM配置参数 常用JVM配置参数主要有:Trace跟踪参数.堆的分配参数.栈的分配参数. 一.Trace跟踪参数 跟踪参数用于跟踪监控JVM,对于开发人员来讲用于JVM调优以及故障排查的. 1.打印GC的简要信息 -verbose:gc -XX:+PrintGC 这两个配置参数效果是一样的,都是在发生GC时打印出简要的信息,例如执行代码 public static void main(String[] args) { byte[] bytes = null; for (int i = 0;…
写这篇wiki的目的:最近在调整Hbase的JVM,翻了些文档和wiki,想写点东西,给自己和想了解jvm日志和参数的同 学提供些帮助. 一:理解GC日志格式,读GC日志的方法 1:开启日志 -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/path/gc.log -XX:+UseGCLogFileRotation  启用GC日志文件的自动转储 (Since Java) -XX:NumberOfGClogFiles=1…
JVM常见内存参数配置简析   常见参数 -Xms .-Xmx.-XX:newSize.-XX:MaxnewSize.-Xmn(-XX:newSize.-XX:MaxnewSize) 简析 1.-Xms:表示java虚拟机堆区内存初始内存分配的大小: 2.-Xmx:表示java虚拟机堆区内存可被分配的最大上限,通常为操作系统可用内存的1/4大小. 注: 1)-Xms,-Xmx内存大小建议为512的整数倍,可以根据机器实际内存进行合理的设置,建议最大值-Xmx不要超过剩余物理内存的50% 2)通常…
JVM配置参数分为三类参数:跟踪参数.堆分配参数.栈分配参数 这三类参数分别用于跟踪监控JVM状态,分配堆内存以及分配栈内存. 跟踪参数 跟踪参数用户跟踪监控JVM,往往被开发人员用于JVM调优以及故障排查. 1.当发生GC时,打印GC简要信息   使用-XX:+PrintGC或-verbose:gc参数      这两个配置参数效果是一样的,都是在发生GC时打印出简要的信息,例如: public static void main(String[] args) { byte[] bytes =n…
转自http://www.rowkey.me/blog/2016/11/02/java-profile/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io JVM常用参数选项 jvm 可配置的参数选项可以参考 Oracle 官方网站给出的相关信息:http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html 下面只列举其中的几个常…
转载请注明出处: 最近在安全护网行动,需要针对服务进行不断的安全加固,如 对服务的 log4j 的安全配置进行防护,对 fastjson 的漏洞进行安全加固等,最快的防护方法就是通过在服务启动的时候,设置对应的安全参数.如开启 fastjson 的安全模式,在启动服务的jvm 参数中添加以下配置: -Dfastjson.parser.safeMode=true 配置之后总结一下JVM 的常用的三种方式: -D,-X,-XX -XX 标准选择(Standard Options) -XX 是 JVM…
常用JVM配置参数 Trace跟踪参数 堆的分配参数 栈的分配参数 Trace跟踪参数 1.打开GC的日志,如果在程序的运行过程中,系统发生了GC,就会打印相关的信息. -verbose:gc -XX:+printGC 可以打印GC的简要信息//0.0001606 secs垃圾收集消耗的时间//回收前占据的堆的空间是4790k,回收后占据374k,相减,回收了多少垃圾//整个堆的大小是15872k [GC 4790K->374K(15872K), 0.0001606 secs] [GC 4790…
一.基本参数在我们第一次安装Memcached时,一般都是用过这个命令: memcached -m 512 -u root -d -l 127.0.0.1 -p 11211 我们先来解释这几个参数的含义吧. -m 指定缓存所使用的最大内存容量,单位是Megabytes,默认是64MB-u 只有以root身份运行时才指定该参数-d 以daemon的形式运行-l 指定监听的地址-p 指定监听的TCP端口号,默认是11211 二.其他常用的参数-t 指定线程数,默认是4个-h 打印帮助信息-c 最大同…
记录一下jvm中的一些配置参数,这些肯定不全的,希望你们能留个言,补全一下,谢谢啦! -XX: MaxDirectMemorySize--->设置直接内存,不设置与Java堆内存最大值一致 -XX:PermSize(老年代大小)和-XX:MaxPermSize(永久代大小)--->设置方法区大小 -Xoss--->设置本地方法栈大小(实际无效,栈容量只由-Xss设定) -XX:+HeapDumpOnOutOfMemoryError--->生成内存溢出快照(查看内存溢出快照的工具,安…
经过前面的各种分析,我们知道了关于JVM很多的知识,比如版本信息,类加载,堆,方法区,垃圾回收等,但是总觉得心里不踏实,原因是没看到实际的一些东西. 所以这在本文,咱们就好好来聊一聊关于怎么将这些内容进行直观地展示在我们面前,包括怎么进行相应的一些设置.OK,let's go! 8.1 JVM参数 8.1.1 标准参数 -version -help -server -cp 8.1.2 -X参数 非标准参数,也就是在JDK各个版本中可能会变动 -Xint     解释执行 -Xcomp    第一…
JVM 分为堆.栈.方法区.程序计数器.本地方法栈 栈内存存放局部变量表.操作栈.动态链接.方法出口等信息 1.  局部变量表存放了编译期可知的各种基本数据类型(boolean.byte.char.short.int.float.long.double).对象引用(reference 类型,它不等同于对象本身,根据不同的虚拟机实现,它可能是一个指向对象起始地址的引用指针,也可能指向一个代表对象的句柄或者其他与此对象相关的位置)和returnAddress 类型(指向了一条字节码指令的地址).其中…
类加载概述 在java代码中,类型的加载.连接与初始化过程都是在程序运行期间完成的 类型:class.interface(object本身).类型可在运行期间生成,如动态代理.一种runting概念 加载:最常见的方式是将已经存在的类的字节码文件(.class文件)从磁盘上加载到内存中: 连接:将类与类之间的关系确立下来,对于字节码的一些相关处理.校验在连接阶段完成 初始化:对于一些静态的变量进行复制 过程不是一定按照上述顺序,按照规范即可 提供了更大的灵活性,增加了更多的可能性 本身是静态类型…
内存泄漏 内存泄漏是指程序在申请内存后,无法释放已申请的内存空间,无用对象(不再使用的对象)持续占有内存或无用对象的内存得不到及时释放,从而造成内存空间的浪费.内存泄漏最终会导致OOM. 造成内存泄漏典型场景: 1. 单例模式的不正确使用单例对象在初始化后将在JVM的整个生命周期中以静态变量的方式存在.如果单例对象持有对外部对象的引用,那么这个对象将不能被JVM正常回收 2. 数据库.网络.IO连接没有被关闭释放这类连接,一般会提供close方法进行显式关闭.但如果没有进行close,是不会自动…
最近看了有关虚拟机的书籍,发现有很多虚拟机配置参数不知道,特来记录一下, -XX: MaxDirectMemorySize--->设置直接内存,不设置与Java堆内存最大值一致 -XX:PermSize(老年代大小)和-XX:MaxPermSize(永久代大小)--->设置方法区大小 -Xoss--->设置本地方法栈大小(实际无效,栈容量只由-Xss设定) -XX:+HeapDumpOnOutOfMemoryError--->生成内存溢出快照(查看内存溢出快照的工具,安装JDK时,…
垃圾收集算法 标记-清除算法 最基础的收集算法是"标记-清除"(Mark-Sweep)算法,分两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象. 不足:一个是效率问题,标记和清除两个过程的效率都不高:另一个是空间问题,标记清除之后会产生大量不连续的内存碎片,空间碎片太多可能导致以后在程序运行过程需要分配较大对象时,无法找到足够的连续内存而不得不提前触发另一个的垃圾收集动作. 复制算法 为了解决效率问题,一种称为复制(Copying)的收集算法出现了,它将可用…