[ 
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)

Reply via email to