摘要: 1、每天15万 PV 的在线文档类型网站 环境:4 CPU,16GB 内存, 64位 CentOS 5.4 问题:网站失去响应 原先JVM配置:JDK1.5, -Xmx12G -Xms12G 解决过程:发现问题来自GC停顿(12G内存 的 Full GC 需要12秒),内存中暂存文件导致“朝生夕灭” 阅读全文
posted @ 2014-12-21 21:47 lihui1625 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 1、jps 列出JVM 进程 其中: -m 列出输入参数;-l 列出类全名 ;-v 列出JVM 参数 命令: jps -l 输出: 命令:jps -l -m -v 2、jstat 列出JVM统计信息 命令: jstat -gc 7164 250 20 (获取进程7164的Heap 状况,250毫秒为 阅读全文
posted @ 2014-12-21 21:40 lihui1625 阅读(325) 评论(0) 推荐(0) 编辑
摘要: 1、对象是否已死 (1). 引用计数法:无法回收相互引用的对象,故JVM没有采用 例子: 以上例子使用引用计数法无法回收,但是JVM使用的不是,JVM可回收。 (2). 可达性分析算法: 通过一系列“GC root” 作为起始点,从这些节点开始往下搜索,搜索经过的路径成为引用链。若对象不与引用链相连 阅读全文
posted @ 2014-12-21 21:25 lihui1625 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 1、JVM 运行时数据区 所有线程共享的数据区:方法区(持久代)、堆区 线程隔离的数据区:程序计数器、Java虚拟机栈区 堆区构成:新生代 ( 由Eden, From Survivor, To Survivor 构成)、老生代 运行时常量池:方法区一部分,用于存放编译期生成的各种字面量和符号引用 直 阅读全文
posted @ 2014-12-21 16:53 lihui1625 阅读(103) 评论(0) 推荐(0) 编辑
摘要: http://blog.chinaunix.net/uid-26602509-id-4110150.html 简介 考虑一下这种场景,你开发了一个应用,它有十分优秀的布局设计,最新的特性以及其它的优秀特点。但是在性能这方面欠缺,不管这个应用如何都会遭到客户拒绝。客户总是期望它们的应用应该有更好的性能 阅读全文
posted @ 2014-12-21 10:47 lihui1625 阅读(1883) 评论(0) 推荐(0) 编辑
摘要: http://blog.csdn.net/kthq/article/details/8618052 堆内存设置 原理 JVM堆内存分为2块:Permanent Space 和 Heap Space。 Permanent 即 持久代(Permanent Generation),主要存放的是Java类定 阅读全文
posted @ 2014-12-21 10:18 lihui1625 阅读(93) 评论(0) 推荐(0) 编辑