[ 
https://issues.apache.org/jira/browse/HBASE-22412?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16845577#comment-16845577
 ] 

Zheng Hu commented on HBASE-22412:
----------------------------------

> Also it would be good to show the number of heap allocations still IMO. May 
> be not ratio. 
There're some reason why I did not show the allocation num (bufferSize=64KB) 
because an heap allocation can be any buffer with size in [0KB, 64KB], while a 
pool allocation must be 64KB,   it's unfair to compare them together for pool 
allocation.  bytes size is more fair. 

IMO, the absolute value of heap allocation number is not very meanfulling if 
not consider it as ratio.

> But how one can know whether the #BBs in the pool is not enough or it is the 
> size of the BBs is not proper? Can one know that?
You can see the issue description: 
bq. If the heap allocation percent is less than 
hbase.ipc.server.reservoir.minimal.allocating.size / 
hbase.ipc.server.allocator.buffer.size, then the allocator works fine, 
otherwise it's overload.


> Improve the metrics in ByteBuffAllocator
> ----------------------------------------
>
>                 Key: HBASE-22412
>                 URL: https://issues.apache.org/jira/browse/HBASE-22412
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Zheng Hu
>            Assignee: Zheng Hu
>            Priority: Major
>         Attachments: HBASE-22412.HBASE-21879.v1.patch, 
> HBASE-22412.HBASE-21879.v2.patch, HBASE-22412.HBASE-21879.v3.patch, JMX.png, 
> web-UI.png
>
>
> gAddress the comment in HBASE-22387: 
> bq. The ByteBuffAllocator#getFreeBufferCount will be O(N) complexity, because 
> the buffers here is an ConcurrentLinkedQueue. It's worth file an issue for 
> this.
> Also I think we should use the allcated bytes instead of allocation number to 
> evaluate the heap allocation percent , so that we can decide whether the 
> ByteBuffer is too small and whether will have higher GC pressure.  Assume the 
> case:  the buffer size is 64KB, and each time we have a block with 65KB, then 
> it will have one heap allocation (1KB) and one pool allocation (64KB), if 
> only consider the allocation num, then the heap allocation ratio will be 1 / 
> (1 + 1) = 50%, but if consider the allocation bytes, the allocation ratio 
> will be  1KB / 65KB = 1.5%.
> If the heap allocation percent is less than  
> hbase.ipc.server.reservoir.minimal.allocating.size /  
> hbase.ipc.server.allocator.buffer.size,  then the allocator  works fine, 
> otherwise it's overload. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to