Home > Database > Mysql Tutorial > body text

优化hbaseJVMGC参数,避免由于JVM内存回收引发的ZooKeeper会话超

WBOY
Release: 2016-06-07 15:28:21
Original
1665 people have browsed it

hbase默认内存为1G,官方文档中明确地指出这是无法支撑长时间正常运行的,是肯定要引发ZooKeeper会话超时事件,从而导致服务退出的。 文档中给出了4个不怎么有用的建议: 加大内存(但不告诉加多少,反正是越多越好)确保不要使用交换分区(可我的硬盘是SSD

hbase默认内存为1G,官方文档中明确地指出这是无法支撑长时间正常运行的,是肯定要引发ZooKeeper会话超时事件,从而导致服务退出的。

文档中给出了4个不怎么有用的建议:

加大内存(但不告诉加多少,反正是越多越好)确保不要使用交换分区(可我的硬盘是SSD,比内存慢不了多少)确保有空闲的CPU(CPU很少怎么办?)延长ZooKeeper超时等待时间(这个有点用,适当延长无害)

既然是JVM回收内存引发的事件,就优化JVM参数来解决吧!以默认1G内存为例。

设置Xmn值为150M:

export HBASE_OPTS="-Xmn150m"

设置GC参数:

export SERVER_GC_OPTS="-XX:CMSInitiatingOccupancyFraction=80 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC"

解释一下:

-Xmn150m 年轻代大小为150M

"-XX:CMSInitiatingOccupancyFraction=80 年老代使用了80%时回收内存

( 1 - 年轻代150M / ( 总内存1000M - 年轻代150M ) ) * 100 = 82.35 > 80

确保了在回收时有余量执行此时出现的任务

-XX:+UseParNewGC:设置年轻代为并发回收

-XX:+UseConcMarkSweepGC:设置年老代为并发回收

这样就能保证在硬件资源范围内最大限度地支撑正常运行,赶快试试吧!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!