
jvm
文章平均质量分 94
piaoslowly
这个作者很懒,什么都没留下…
展开
-
线上宕机优化过程记录
线上宕机优化过程记录在线上容器中配置jvm参数-XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=/logs/outMemoryDump.hprof线上宕机后,自动将当前内存堆导出到文件中.事故现场: 由于线上配置的是6G的内存,结果6G内存都被撑爆了,所以dump出来的堆文件有7G大小.线上服务器dump.hprof文件拖到本...原创 2018-08-10 14:10:38 · 505 阅读 · 0 评论 -
jvm-java内存模型(JMM)(七)
jvm-java内存模型(JMM)(七)java虚拟机规范中试图定义一种java自己的内存模型,用来屏蔽各种硬件和操作系统的内存访问差异,所以就有了JMM Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样底层细节(此处的变量与Java编程时所说的变量不一样,指包括了实例字段、静态字段和构成数组对象的元素,但是不包括局部变量与方法参...原创 2018-08-06 19:41:26 · 296 阅读 · 0 评论 -
jvm-虚拟机字节码执行引擎(六)
jvm-虚拟机字节码执行引擎(六)运行时栈帧结构栈帧是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈的栈元素。 栈帧存储了:局部变量,操作数栈,动态连接和方法返回地址等信息。局部变量局部变量是一组变量值存储空间,用于存放方法参数和方法内部定义的局部变量。 类变量会有两次初始化:第一次系统赋值初始化,第二次用户自己的赋值。但是...原创 2018-08-06 19:40:52 · 144 阅读 · 0 评论 -
jvm-类加载器(五续)
jvm-类加载器(五续)和将GC垃圾收集器一样,前面将了很多理论,真正工作的是“器”,GC收集器,类加载器。 在类加载的第一阶段“加载”过程中,需要通过一个类的全限定名来获取定义此类的二进制字节流,完成这个动作的代码块就是类加载器。这一动作是放在Java虚拟机外部去实现的,以便让应用程序自己决定如何获取所需的类。 说白了就是:Java 源程序(.java 文件)在经过 Java 编译...原创 2018-08-06 19:40:12 · 172 阅读 · 0 评论 -
jvm-类加载机制(五)
jvm-类加载机制(五)虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。与那些在编译时需要进行链接工作的语言不同,在Java语言里,类型的加载、连接和初始化过程都是在程序运行期间完成的,例如import java.util.*下面包含很多类,但是,在程序运行的时候,虚拟机只会加载哪些我...原创 2018-08-06 19:39:42 · 166 阅读 · 0 评论 -
jvm-性能监控工具(四)
jvm-性能监控工具(四)jps-q 只显示pid,不显示class名称,jar文件名和传递给main 方法的参数hollis@hos:/tmp/hsperfdata_hollis$ jps -q267911421-m 输出传递给main 方法的参数,在嵌入式jvm上可能是null, 在这里,在启动main方法的时候,我给String[] args传递两个参数。holl...原创 2018-08-06 19:38:57 · 151 阅读 · 0 评论 -
jvm-class类文件结构(三)
jvm-class类文件结构(三)Java虚拟机已经实现了语言无关性的特点。而实现语言无关性的基础是虚拟机和字节码的存储格式,Java虚拟机已经不和包括Java语言在内的任何语言绑定。它只与“class”文件这种特定的二进制文件相关联。在class文件中包含了Java虚拟机指令集和符号表以及若干辅助信息。 任何编程语言只要能编译成class文件,并且符合class规定的文件格式,就可以...原创 2018-08-06 19:38:17 · 190 阅读 · 0 评论 -
jvm-GC收集器(二)
jvm-GC收集器(二)我们需要思考GC的3件事哪些内存需要回收什么时候回收?如何回收? 那什么是垃圾呢?所谓“垃圾”,就是指所有不再存活的对象。在jvm堆里面几乎放着java世界中所有的对象,垃圾收集器在对堆进行收集时需要判断哪些还存活着,哪些已经死了。 常见的判断是否存活有两种方法:引用计数法和可达性分析。引用计数算法给对象添加一个引用计数器,每当...原创 2018-08-06 18:15:50 · 257 阅读 · 0 评论 -
jvm-内存管理机制(一)
jvm-内存管理机制(一)JVM内存区域主要包括如下部分:程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区。 JVM内存管理也可以理解为–jvm运行时数据区,jvm内存主要管理的就是这片内存区域。 堆(各线程共享区域)java的堆是一个运行时的数据区,用来存储数据的单元,存放通过new关键字新建的对象和数组,对象从中分配内存。 在堆中声明的对象,是不能直接访问的,...原创 2018-08-06 18:14:47 · 6370 阅读 · 2 评论 -
jvm调优现场
jvm 内存查看线程1.输出该进程拥有的线程总数 ps -mp pid -o THREAD,tid,time | wc -l2.输出占用cpu最大的前10线程 ps -mp pid -o THREAD,tid,time | sort -rn | head -103.查看进程中线程当前的的状态(thread dump) jstack pid对于查找blocked线程比较有意义...原创 2018-08-10 14:15:17 · 723 阅读 · 0 评论 -
服务器性能常用命令
tomcat内存情况https://blog.youkuaiyun.com/ligang2585116/article/details/46343271输出该进程拥有的线程总数ps -mp 5841 -o THREAD,tid,time | wc -l输出占用cpu最大的前10线程ps -mp 5841 -o THREAD,tid,time | sort -rn | head -10将需要的线程I...原创 2018-10-24 10:48:55 · 244 阅读 · 0 评论