摘要:
mysql热备1 查看mysql版本,保证主库低于等于从库2 主库配置: A 需要打开支持日志功能:log-bin=mysql-bin B 提供server-id:server-id=1 C 重启mysql,进入后,分配复制从库的帐号GRANT REPLICATION SLAVE ON *.* TO... 阅读全文
摘要:
问题描述如果java层面发生了死锁,当我们使用jstack命令的时候其实是可以将死锁的信息给dump出来的,在dump结果的最后会有类似Found one Java-level deadlock:的关键字,接着会把发生死锁的线程的堆栈及对应的同步锁给打印出来,这次碰到一个系统就发生类似的问题,不过这... 阅读全文
摘要:
问题描述最近经常被问到一个问题,”为什么我们系统进程占用的物理内存(Res/Rss)会远远大于设置的Xmx值”,比如Xmx设置1.7G,但是top看到的Res的值却达到了3.0G,随着进程的运行,Res的值还在递增,直到达到某个值,被OS当做bad process直接被kill掉了。1234567t... 阅读全文
摘要:
概述JVM的GC一般情况下是JVM本身根据一定的条件触发的,不过我们还是可以做一些人为的触发,比如通过jvmti做强制GC,通过System.gc触发,还可以通过jmap来触发等,针对每个场景其实我们都可以写篇文章来做一个介绍,本文重点介绍下System.gc的原理或许大家已经知道如下相关的知识sy... 阅读全文
摘要:
最近线上运行的hbase发现分配了16g内存,但是实际使用了22g,堆外内存达到6g。感觉非常诡异。堆外内存用一般的工具很难查看,可以通过google-perftools来跟踪:http://code.google.com/p/google-perftools/downloads/list 它的原理... 阅读全文
摘要:
概述广义的堆外内存说到堆外内存,那大家肯定想到堆内内存,这也是我们大家接触最多的,我们在jvm参数里通常设置-Xmx来指定我们的堆的最大值,不过这还不是我们理解的Java堆,-Xmx的值是新生代和老生代的和的最大值,我们在jvm参数里通常还会加一个参数-XX:MaxPermSize来指定持久代的最大... 阅读全文
摘要:
Java对象引用体系除了强引用之外,出于对性能、可扩展性等方面考虑还特地实现了4种其他引用:SoftReference、WeakReference、PhantomReference、FinalReference,本文主要想讲的是FinalReference,因为当使用内存分析工具,比如zprofil... 阅读全文
摘要:
嘿,你能顺便过来看看这个奇怪的事情吗?”就是让我提供支持的这个事情,驱使我写下这篇博客的。这个特殊的问题是,不同工具给出的可用内存的报告是不一样的。简而言之,工程师正在调查特定应用程序的内存使用。根据以往的经验,他给这个应用指定了2G堆内存。但是不知道什么原因,JVM工具似乎不能确定这个程序到底有多... 阅读全文
摘要:
一、类加载器首先来看一下java程序的执行过程。 从这个框图很容易大体上了解java程序工作原理。首先,你写好java代码,保存到硬盘当中。然后你在命令行中输入[java]view plaincopyjavacYourClassName.java此时,你的java代码就被编译成... 阅读全文
摘要:
什么是iowait?顾名思义,就是系统因为io导致的进程wait。再深一点讲就是:这时候系统在做io,导致没有进程在干活,cpu在执行idle进程空转,所以说iowait的产生要满足两个条件,一是进程在等io,二是等io时没有进程可运行。Iowait是如何计算的?先说说用户如何看到iowait吧我们... 阅读全文
摘要:
本文是一次内部分享中总结了jvm gc的分类和一些实例, 内容是introduction级别的,供初学人士参考.成文仓促,难免有些错误,如果有大牛发现,请留言,我一定及时更正,谢谢!JVM内存布局主要包含下面几个部分:Java Virtual Machine Stack: 也就是我们常见的局部变量栈... 阅读全文