欢迎访问宙启技术站
智能推送

hbase针对full gc所做的优化方法是什么

发布时间:2023-05-15 20:17:25

在HBase中,Full GC是一种灾难性事件,可以导致系统性能的显着下降。全局垃圾收集(GC)的主要原因是操作系统内存压力,即操作系统中的所有进程共享的内存空间越来越小。Full GC会导致HBase在一段时间内停止工作,通常几十秒至几分钟不等。因此,在HBase中,需要采取一些优化方式来减少Full GC导致的性能下降。

优化方法如下:

1.增加内存大小

Full GC的根本原因是操作系统中的内存压力,所以为了减少Full GC,可以增加HBase进程的内存。把系统内存加大到足够分配给JVM使用,通常建议为HBase分配至少16GB的内存空间,这可以使Full GC的发生频率降低。

2.使用CMS GC

CMS是一种基于垃圾回收器的算法(CMS)。该算法在减少Full GC停顿上效果非常好。在HBase中,采用CMS GC可以大大减少Full GC所产生的影响。一般来说,CMS GC会比标准的JVM GC要快,因为它使用了并发处理的方式来执行一些重要的垃圾回收操作。

3.禁用日志压缩

日志压缩功能很适合存储日志,但在HBase中会导致频繁的Full GC。如果不需要压缩日志,可以禁用该功能。HBase提供了一个配置变量,可以禁用日志压缩,并且在配置文件中设置此变量将会减少GC发生的频率并且提高HBase的性能。

4.禁用Hadoop默认的启发式Java Heap Sizing

默认情况下,Hadoop启用了算法用于估算JVM堆大小并启动JVM。但是,该算法很可能会导致过多的内存使用,导致Full GC的发生。因此,禁用Java Heap Sizing算法可以减少Full GC的发生及其造成的影响。

5.减少键值对数量

HBase内存存储模型的设计方式是让大量数据存储在集群中。如果不避免存储上百列家庭的大的对象,就会导致HBase中的内存不断增长,最终导致Full GC。因此,需要引入一定的预测机制,最大限度减少存储的键-值对数量。

总结:

在HBase中,Full GC可能会导致系统性能的显着下降,因此需要采取一些优化方式来减少Full GC导致的影响。优化方法包括:增加内存大小、使用CMS GC、禁用日志压缩、禁用Hadoop默认的启发式Java Heap Sizing以及减少键值对数量等。通过这些优化方式,可以有效降低Full GC的发生频率,并提高HBase的性能。