随笔分类 -  jvm

理解Hotspot JVM CMS垃圾回收器【译】
摘要:最近在看Cassandra的内存管理方式,Cassandra默认采用的老年代GC回收策略是CMS,以及采用了Slab Allocator的内存分配方式。采用了Slab Allocator的内存分配方式,大大缩短了GC的时间,据说有1000倍。很吸引人。所以,我要深入研究一下这部分。这部分的实际驱动并不大,可能研究并不十分深入。下面有关CMS GC的部分大多是翻译自Understanding GC pauses in JVM, Hotspot's CMS collector.此外,还有我之前的一些理解。在以后的博客中,我会对JVM平台的延迟问题进行深入的研究。而且,我相信,这并不是一个陈 阅读全文

posted @ 2012-09-14 18:17 sing1ee 阅读(2923) 评论(1) 推荐(1)

Cassandra如何决定flush memtable的大小
摘要:一个多月没有更新博客了。我在积累,频繁更新的话,就没有东西写了-_-。不过还是要定期的总结,以备忘,以分享,以交流,以提高。这篇博客说的问题是Cassandra在memtable flush为sstable的时候,大小是如何计算的,以及flush的阈值是如何确定的。这个过程是动态的,并不是设定某个内存的大小,或者qps多少的时候,进行flush。一方面计算过程可能并不那么直接,另一方面1.1.3版本之前,这里隐藏了比较严重的bug:可能会造成内存溢出(很严重)可能会造成L0层的sstable文件很小(长期来看,也比较严重,严重影响读性能)可能会有以下的日志:WARN[MemoryMeter:1 阅读全文

posted @ 2012-09-11 11:39 sing1ee 阅读(1271) 评论(0) 推荐(0)