[
https://issues.apache.org/jira/browse/HBASE-16146?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15360429#comment-15360429
]
stack commented on HBASE-16146:
-------------------------------
Here is branch-1 doing random read workloadc:
{code}
12.05% perf-56198.map [.] Lorg/apache/hadoop/hbase/util/Counter;.add
3.11% libjvm.so [.]
BlockOffsetArrayNonContigSpace::block_start_unsafe(void const*) const
2.19% perf-56198.map [.]
Lorg/apache/hadoop/hbase/io/hfile/HFileBlockIndex$BlockIndexReader;.binarySearchNonRootIndex
1.65% perf-56198.map [.]
Lorg/apache/hadoop/hbase/protobuf/generated/CellProtos$Cell;.writeTo
1.62% perf-56198.map [.]
Lorg/apache/hadoop/hbase/io/hfile/LruBlockCache;.getBlock
1.58% perf-56198.map [.]
Lorg/apache/hadoop/hbase/io/hfile/HFileReaderV3$ScannerV3;.blockSeek
1.49% perf-56198.map [.]
Lorg/apache/hadoop/hbase/regionserver/HRegion$RegionScannerImpl;.<init>
1.37% libjvm.so [.]
ClearNoncleanCardWrapper::do_MemRegion(MemRegion)
1.31% perf-56198.map [.]
Lorg/apache/hadoop/hbase/regionserver/ScanQueryMatcher;.match
1.28% perf-56198.map [.] Lorg/apache/hadoop/hbase/ipc/CallRunner;.run
1.23% [kernel] [k] _raw_spin_lock
1.20% perf-56198.map [.]
Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;.tryAcquireShared
1.12% perf-56198.map [.]
Lorg/apache/hadoop/hbase/protobuf/ProtobufUtil;.toCell
1.10% perf-56198.map [.]
Lorg/apache/hadoop/hbase/regionserver/StoreScanner;.next
1.06% perf-56198.map [.] Lsun/nio/ch/SocketChannelImpl;.read
1.01% perf-56198.map [.]
Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;.tryReleaseShared
0.99% libjvm.so [.] CompactibleFreeListSpace::block_size(HeapWord
const*) const
0.96% perf-56198.map [.]
Lorg/apache/hadoop/hbase/io/hfile/HFileBlockIndex$BlockIndexReader;.loadDataBlockWithScanInfo
0.92% [kernel] [k] tcp_sendmsg
0.90% libjvm.so [.] SpinPause
...
{code}
If I hack out some counters (see attached patch and below perf output),
throughput goes from 380k to 425k, ~10%. If I hack out more could go faster.
Need to look at making counters that have less friction.
{code}
3.77% perf-64390.map [.] Lorg/apache/hadoop/hbase/util/Counter;.add
2.79% libjvm.so [.]
BlockOffsetArrayNonContigSpace::block_start_unsafe(void const*) const
2.57% perf-64390.map [.]
Lorg/apache/hadoop/hbase/io/hfile/HFileBlockIndex$BlockIndexReader;.binarySearchNonRootIndex
1.88% perf-64390.map [.] Lorg/apache/hadoop/hbase/ScheduledChore;.run
1.84% perf-64390.map [.]
Lorg/apache/hadoop/hbase/regionserver/ScanQueryMatcher;.match
1.76% perf-64390.map [.]
Lorg/apache/hadoop/hbase/io/hfile/LruBlockCache;.getBlock
1.66% perf-64390.map [.]
Lorg/apache/hadoop/hbase/protobuf/generated/CellProtos$Cell;.writeTo
1.66% perf-64390.map [.]
Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;.tryAcquireShared
1.63% libjvm.so [.]
ClearNoncleanCardWrapper::do_MemRegion(MemRegion)
1.56% [kernel] [k] _raw_spin_lock
1.46% perf-64390.map [.] 0x00007fca5698778c
1.43% libjvm.so [.] CompactibleFreeListSpace::block_size(HeapWord
const*) const
1.36% perf-64390.map [.] Lorg/apache/hadoop/hbase/ipc/CallRunner;.run
1.33% perf-64390.map [.]
Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;.tryReleaseShared
1.27% perf-64390.map [.]
Lorg/apache/hadoop/hbase/protobuf/ProtobufUtil;.toCell
1.20% libjvm.so [.] SpinPause
...
{code}
> Counter is a perf killer
> ------------------------
>
> Key: HBASE-16146
> URL: https://issues.apache.org/jira/browse/HBASE-16146
> Project: HBase
> Issue Type: Sub-task
> Reporter: stack
>
> Doing workloadc, perf shows 10%+ of CPU being spent on counter#add. If I
> disable some of the hot ones -- see patch -- I can get 10% more throughput
> (390k to 440k). Figure something better.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)