hbase on line服务gc停顿时间必须ms级,java gcd stop the world 时间太长会影响线上实时查询。
hbase官方推荐hregionserver堆大小15-24g,堆过大会增加full gc的时间,超过这个限制需要重新调整GC
以下是调优方案。
- 32GB heap, -XX:G1NewSizePercent=3
- 64GB heap, –XX:G1NewSizePercent=2
- 100GB and above heap, -XX:G1NewSizePercent=1
HRegionserver 配置如下:
-
- -XX:+UseG1GC
- -Xms100g -Xmx100g
- -XX:MaxGCPauseMillis=100
- –XX:+ParallelRefProcEnabled
- -XX:-ResizePLAB
- -XX:ParallelGCThreads= 8+(40-8)(5/8)=28(oracle官方计算公式)
- -XX:G1NewSizePercent=1
这个优化配置是参考cloudera官方一篇hbase gc调优的博客进行配置的,目前这个配置我们的hbase gc基本在ms级,缓存命中率能达到90%多。