JAVA VM
iteye_8160
这个作者很懒,什么都没留下…
展开
-
java wait notify
import java.util.ArrayList; import java.util.List; public class WaitNotify extends Thread { private String flag="false"; private List list=new ArrayList(); public static void mai...原创 2014-04-02 21:01:40 · 133 阅读 · 0 评论 -
如何分析JAVA 线程堆栈
线程堆栈是个很强大的东西,可以看到进程正在运行的所有线程信息 1.1 kill -3 PID 命令 堆栈信息会打到进程的后台启动nohup.out的文件里面 1.2 jboss配置前台请求线程数: jboss-4.2.3.GA/server/default/deploy/jboss-web.deployer/server.xml 1.3 关注前台发起的线程 红色部分的线程是前台...原创 2014-04-02 21:06:55 · 145 阅读 · 0 评论 -
如何分析JAVA内存DMP
1.1 jmap –heap PID命令 这个是打印java进程jvm内存分布跟使用情况,可以根据这个来分析是否需要导内存dmp来分析 1.2 部署MAT 1.2.1 配置PATH 环境变量 jdk root 用户编辑vi /etc/profile 退出当前shell,重新登录生效 1.2.2 更改配...原创 2014-04-02 21:24:53 · 1700 阅读 · 1 评论 -
误用线程池ThreadPoolExecutor导致堆外内存增加宕机
最近遇到一个问题原本虚拟机分配了2G的堆大小,发现OS用top命令看,进程的VIRT内存一直增加,而且RES也一直往上增加,最后前者达到了16G,后者达到了8G,最后内存整个进程宕调 后来尝试重现问题,打了JAVA线程堆栈,发现堆栈里面大量的pool的线程,多达上万个。 就是有个人写代码,误用JAVA线程池,每次用都新new一个线程池ThreadPoolExecutor, 最后自己写代码...原创 2014-11-25 11:43:40 · 1552 阅读 · 0 评论