随笔分类 -  jvm

该文被密码保护。
posted @ 2018-02-07 09:54 积淀 阅读(16) 评论(0) 推荐(0) 编辑
摘要:本文是在JDK1.7下面做的试验,通过模拟,我们可以直接点中这些场景的本质,从而在纷繁复杂的千万行代码中避免这样去 coding。导致 OOM 的情况有多种,包括 Java 或 Native Method Stack 的内存不足或者栈空间溢出(stack over Flow)、Heap 内存溢出(O 阅读全文
posted @ 2017-12-27 20:44 积淀 阅读(982) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2016-03-21 15:36 积淀 阅读(2) 评论(0) 推荐(0) 编辑
摘要:引言 在 JAVA 语言中有8中基本类型和一种比较特殊的类型String。这些类型为了使他们在运行过程中速度更快,更节省内存,都提供了一种常量池的概念。常量池就类似一个JAVA系统级别提供的缓存。 8种基本类型的常量池都是系统协调的,String类型的常量池比较特殊。它的主要使用方法有两种: 直接使 阅读全文
posted @ 2016-03-04 17:52 积淀 阅读(396) 评论(0) 推荐(0) 编辑
摘要:1. top找到目标进程,记下pid2. top –p pid, 并用shift+h打开线程模式 这样可以看到这个进程中,到底哪个线程占用大量cpu 记下threadid,tid3. jstack查看该线程实时的stack情况 jstack [pid]|grep -A 10 [tid(16进制)] ... 阅读全文
posted @ 2015-12-27 23:41 积淀 阅读(349) 评论(0) 推荐(0) 编辑
摘要:Java运行时内存区域程序计数器,线程独占,当前线程所执行的字节码的行号指示器,每个线程需要记录下执行到哪儿了,下次调度的时候可以继续执行,这个区是唯一不会发生oom的栈,线程独占,包含虚拟机栈或native method stack,用于存放局部变量的堆,线程共享,用于分布对象实例的,后面说的内存... 阅读全文
posted @ 2015-12-27 23:37 积淀 阅读(211) 评论(0) 推荐(0) 编辑
摘要:从目前这几天的运行情况看,每天晚上0点到3点,应该是你们那边有大数据任务处理,在这个时间段,SOA会频繁报ZK断开重联的告警,见下图。类似的问题,在CRM系统上也有出现过,我们dump内存,分析后,结论如下,看是否你们有类似的情况,供参考:代码中使用了大量循环,在循环体中产生了众多对象,这些对象基本... 阅读全文
posted @ 2015-08-29 11:23 积淀 阅读(332) 评论(0) 推荐(0) 编辑
摘要:6月25日OMS,Ihotel上线成功后执行了一个批处理,SOA报警提示某一台IHOTEL机器调用OMS失败率大于阀值,登录这个机器后发现这台机器CPU使用率处于80%以上,调用OMS有的时候超过5秒。tomcat日志显示一直在执行fullGC.tomcat报错:后联系OPS重启这台机器上的tomc... 阅读全文
posted @ 2015-08-29 11:20 积淀 阅读(187) 评论(0) 推荐(0) 编辑
摘要:事故经过:115:18收到短信报警:国际酒店调用OMS queryGorderOrderList方法失败;成单接口调用OMS获取token失败。2查看checkList发现15:18开始发现调用OMS订单列表接口响应时间明显变长。3业务反馈国际酒店MIS系统查询不到数据,也无法导出数据。怀疑是因为这... 阅读全文
posted @ 2015-08-29 11:19 积淀 阅读(316) 评论(0) 推荐(0) 编辑
摘要:Jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的... 阅读全文
posted @ 2015-03-23 17:37 积淀 阅读(837) 评论(0) 推荐(0) 编辑
摘要:网站持久代引发Full GC问题分析现状:Dragoon(监控系统)的日报显示trade_us_wholelsale(美国wholesale集群),日均Young GC次数25w次左右,应用暂停295w毫秒(相当于40多分钟),Full GC次数600次左右,应用暂停190w毫秒(相当于30多分钟)... 阅读全文
posted @ 2014-09-23 21:44 积淀 阅读(6730) 评论(0) 推荐(0) 编辑
摘要:内存溢出是指应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于虚拟机能提供的最大内存。 引起内存溢出的原因有很多种,常见的有以下几种: 1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据; 2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收; 3.代码 阅读全文
posted @ 2014-09-10 20:33 积淀 阅读(57789) 评论(1) 推荐(14) 编辑
摘要:VM运行时数据区域:根据《Java虚拟机规范(第二版)》的规定,JVM包括下列几个运行时区域:我们思考几个问题:1.jVM是怎么运行的?2.JVM运行时内存是怎么分配的?3.我们写的java代码(类,对象,方法,常量,变量等等)最终存放在哪个区?VM运行时数据区域:1.程序计数器(program C... 阅读全文
posted @ 2014-08-19 17:41 积淀 阅读(696) 评论(0) 推荐(0) 编辑
摘要:探究java的垃圾回收机制:Java的垃圾回收机制使得java程序员不用手动去释放“通过new关键字在heap上申请的空间”,但是任何事情都是有利有弊的。一、对象在什么情况下会变成垃圾?Java中那些不可达的对象就会变成垃圾。那么什么叫做不可达?其实就是没有办法再引用到该对象了。主要有以下情况使对象... 阅读全文
posted @ 2012-10-09 15:46 积淀 阅读(542) 评论(0) 推荐(1) 编辑