Table of Contents
hbase.regionserver.handler.count
hfile.block.cache.size
hbase.regionserver.global.memstore.upperLimit
hbase.regionserver.global.memstore.lowerLimit
hbase.hstore.blockingStoreFiles
hbase.hregion.memstore.block.multiplier
Start with the wiki Performance Tuning page. It has a general discussion of the main factors involved; RAM, compression, JVM settings, etc. Afterward, come back here for more pointers.
Enabling the RPC-level logging on a RegionServer can often given
insight on timings at the server. Once enabled, the amount of log
spewed is voluminous. It is not recommended that you leave this
logging on for more than short bursts of time. To enable RPC-level
logging, browse to the RegionServer UI and click on
Log Level. Set the log level to DEBUG
for the package
org.apache.hadoop.ipc
(Thats right, for
hadoop.ipc, NOT, hbase.ipc). Then tail the RegionServers log.
Analyze.
To disable, set the logging level back to INFO
level.
In his presentation, Avoiding
Full GCs with MemStore-Local Allocation Buffers, Todd Lipcon
describes two cases of stop-the-world garbage collections common in
HBase, especially during loading; CMS failure modes and old generation
heap fragmentation brought. To address the first, start the CMS
earlier than default by adding
-XX:CMSInitiatingOccupancyFraction
and setting it down
from defaults. Start at 60 or 70 percent (The lower you bring down the
threshold, the more GCing is done, the more CPU used). To address the
second fragmentation issue, Todd added an experimental facility that
must be explicitly enabled in HBase 0.90.x (Its defaulted to be on in
0.92.x HBase). See hbase.hregion.memstore.mslab.enabled
to true in your Configuration
. See the cited
slides for background and detail.