- 浏览: 441895 次
最新评论
-
liaodongdakai:
Java读源码之Netty深入剖析网盘地址:https://p ...
java Netty 之 字符串消息收发(ChannelBuffer) -
萨琳娜啊:
Java读源码之Netty深入剖析网盘地址:https://p ...
java Netty 之 教学视频 -
ccqy66:
感觉步骤1的描述有问题吧,aof重写时是不会读原aof文件是, ...
Redis的AOF重写机制 -
dick1305:
没有了,能否再提供一个下载地址。谢谢。
java Netty 之 教学视频 -
dick1305:
...
java NIO 之 mina 和 netty
文章列表
HttpClient学习
- 博客分类:
- 总结 -- 工作经验
http://www.jb51.net/article/92427.htm
MySQL集群 -- NDB Cluster
MySQL集群的表使用的引擎是ndbcluster,简称ndb。
它的意思是: "网络数据库".NDB(也叫NDB Cluster或者NDBCLUSTER),使用它才能让MySQL支持集群。
要想获得MySQL Cluster 的功能,必须安装 mysql-server 和 mysql-m ...
JVM之其他情况
JVM优化时遇到的场景
场景一
一些应用分配了一些少量的非常大的长时间存活的对象。这样的场景需要需要young代的空间比old代更大。
场景二
一些应用会经历很少的对象转移。这样的场景可能需要old代的空间远远大于存活对象的大小,由于old的占用量增长率很小。
场景三
一些应用有小延迟需求,会使用CMS垃圾回收器,而且使用小young代空间(以致于MinorGC时间更短),以及大的old代空间。在这种配置下,对象会快速的从young代移动到old代,替代了高效老化对象。另外,CMS垃圾回收 ...
JVM之优化吞吐量
对年轻代进行优化
优化吞吐量的目的其实是尽量少的Full GC ,或者尽量避免Full GC,有以下方法可以尽量减少Full GC:
增大Eden:你可以让eden空间更大,可以减少MinorGC的次数。我知道当对象的任期或者岁数达到一定值的时候就会移动到old代,而这个任期就是对象经历MinorGC的次数,MinorGC的次数越少,对象任期增长越慢,就有可能被MinorGC回收掉,而不是进入old代。
增大年轻代:这样同样能减少Minor GC 的频率,减慢对象进入老年代。
增大任期阈值:同样是延长对象在年轻代的停留时间,达到减少对象进入老年 ...
JVM之优化延迟或响应时间(CMS垃圾回收器)
CMS有几个注意点
对象从young代转移到old代的转移率
CMS重新分配内存的概率
CMS回收对象时候产生的old代的分隔,这个会在可获得的对象中间产生一些空隙,从而导致了分隔空 ...
JVM之优化延迟或响应时间
- 博客分类:
- Java--JVM
JVM之优化延迟或响应时间
优化标准
在优化延迟的时候,其实就是要调整堆大小,年轻代大小,让GC的时间和频率达到要求。下面是几个优化时需要参考的标准:
Minor GC的时间
Minor GC的频率
Full GC的时间
Full GC的频率
优化年轻代大小
当测试垃圾回收数据的时候,发现MinorGC的时间太长了,正确的做法就是减少young代的空间大小。如果MinorGC太频繁了就增加young代的空间大小。
看看下面例子是怎么优化年轻代:
上图是一个展示了MinorGC的例子,这个例子是运行在如下的Hot ...
JVM之决定堆大小以及内存占用
- 博客分类:
- Java--JVM
JVM之决定堆大小以及内存占用
首先需要判断出应用存活的数据的大小,存活数据的大小是决定配置应用需要的Java堆大小的重要条件,也能够决定是否需要重新审视一下应用的内存需求或者修改应用程序以满足内存需 ...
JVM之优化(GC优化基础)
- 博客分类:
- Java--JVM
JVM之优化(GC优化基础)
本节主要描述关于垃圾回收器性能的三个指标,三个关于垃圾回收器优化的基本原则,以及优化HotSpot VM的垃圾回收器的信息收集,在这些指标中权衡以及信息的收集是非常重要的。
性能指标
吞吐量:衡量垃圾回收器运行在性能峰值的时候不需要关心垃圾回收器暂停的时间或者需要占用内存的能力。
延迟:衡量垃圾回收器最小化甚至消灭由垃圾回收器引起的暂停时间和应用抖动的能力。
内存占用:衡量为了高效的运行,垃圾回收器需要的内存。
一项指标的提升,往往需要牺牲其他一项或者两项指标。换一句话说,一项指标的妥协通常 ...
JVM之优化(部署模型和Runtime)
选择JVM部署模型
JVM部署模型的选择总体来说就是决定应用是部署在单个JVM实例还是多个JVM实例上(这里简单举例说明一下JVM实例,比如:我们常用eclipse开发,启动一个eclipse就是启动了一个JVM实例,然后在JVM中运行一个main程序,又会启动一个JVM实例,两个JVM实例是隔离开的)。哪一个是最适合你的应用的呢?这个是前面说到系统需求和潜在规则来决定的。比如说:假如你要部署您的应用在一个64位的机器上面,可以支持更大Java堆,如果应用依赖第三方的本地代码组件,而且这个第三方暂时不支持64位机器,那么你 ...
JVM之优化(概述)
- 博客分类:
- Java--JVM
JVM之优化(概述)
现代JVM是一个具有灵活适应各种应用能力的软件,尽管很多应用能够在JVM的默认配置下运行良好,但是有些应用还是需要优化JVM配置以达到其性能要求。由于各种各样的应用能够运行在现在JVM上面 ...
JVM之监控JVM
JVM常用的调忧工具
Jconsole : jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用。对垃圾回收算法有很详细的跟踪。
JProfiler:商业软件,需要付费。功能强大。
VisualVM:JDK自带,功能强大,与JProfiler类似。推荐。
监控工具主要分析下面内容
堆监控
线程监控
热点分析
生成快照及分析
堆监控
堆信息查看
JVM之G1垃圾回收器
- 博客分类:
- Java--JVM
JVM之G1垃圾回收器
G1垃圾收集器采用的是区域化、分布式的垃圾回收器。堆被划分成 许多个连续的区域(region)。每个区域大小相等,在1M~32M之间。JVM最多支持2000个区域,可推算G1能支持的最大内存为2000*32M=62.5G。区域(region)的 ...
JVM之CMS垃圾回收器
- 博客分类:
- Java--JVM
JVM之CMS垃圾回收器
CMS(Concurrent Mark-Sweep)是以牺牲吞吐量为代价来获得最短回收停顿时间的垃圾回收器。对于要求服务器响应速度的应用上,这种垃圾回收器非常适合。在启动JVM参数加上-XX:+UseConcMarkSweepGC ,这个参数表示对于老年代的回收采用CMS。
CMS采用的基础算法是:标记—清除。
CMS垃圾回收的过程
初始标记(STW initial mark)
并发标记(Concurrent marking)
并发预清理(Concurrent precleaning)
重新标记(STW remar ...
JVM之垃圾回收器
垃圾回收器总共分四大类
串行垃圾回收器(Serial Garbage Collector)
Serial(年轻代):复制算法,单线程
Serial Old(老年代):标记 - 整理算法,单线程
并行垃圾回收器(Parallel Garbage Collector)
paral ...
JVM之垃圾回收遇到的问题
- 博客分类:
- Java--JVM
JVM之垃圾回收遇到的问题
怎么判断对象可以被回收
根搜索算法
在主流的商用程序语言中(java和c#),都是使用根搜索算法(GC Roots Tracing)判断对象是否存活的。这个算法的基本思路就是通过一系列的名为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链(Reference Chain),当一个对象到GC Roots没有任何引用链相连(用图论的话来说就是从GC Roots到这个对象不可达)时,则证明此对象是不可用的。
java中可以作为GC Root的对象
虚拟机栈(栈帧中的本地变量表)中的引用对 ...