1. 垃圾回收优化
1)首先是设置新生代大小的参数,不能过小,过小则导致年轻代过快成为老生代,引起老生代产生内存随便。同样不能过大,过大导致所有的JAVA进程停止时间长。-XX:MaxNewSize=256m-XX:NewSize=256m这两个可以合并成为-Xmn256m这一个配置来完成。
2)其次是设置垃圾回收策略:-XX:+UseParNewGC -XX:+UseConcMarkSweepGC
3)设置CMS的值,占比多少时,开始并发标记和清扫检查。-XX:CMSInitiatingOccupancyFraction=70
以上三个参数cdh配置位置如下图:(其中也包括 Thrift Server的java参数配置同理
4)hbase.hregion.memstore.mslab.enabled默认值:true,这个是在hbase-site.xml中进行配置的值。
说明:减少因内存碎片导致的Full GC,提高整体性能。
备注:避免频繁的内存碎片化导致的新生代GC到老年代GC,到最终导致的oom
2. 启用压缩
目前hbase默认支持的压缩算法包括GZ,LZO以及snappy(0.92版本已经支持,BSD license)
Algorithm % remaining Encoding Decoding
GZIP 13.4% 21 MB/s 118 MB/s
LZO 20.5% 135 MB/s 410 MB/s
Zippy/Snappy 22.2% 172 MB/s 409