On Sun, Jul 29, 2012 at 5:09 PM, 宾莉金 <[email protected]> wrote:
>     I find every Packet will new a byte array with size is 65557(more than
> 64K). but the pktLen is just a few hundreds or a few ten hunderds . So new
> a byte array with big size but just use a very little of it. So the
> utilization
> rate is very low.

That makes sense.  If sync enabled and we are syncing every write, if
the write is small, we are likely over allocating if 64k is default
buffer size.

Nice work.

Out of interest, is this buffer size configurable?  (I've not looked).


>    I rewrite the logic of new Packet with a PacketPool,I find the
> hregionserver's gc frequency and gc total time reduce a lot,but a single gc
> time increase a lot,so i reduce the jvm New gen size,but the same result
> get,The average RT increase and TPS reduced.

What is RT?

If you enable GC logging, can you contrast the before and after and
see if the logs tell you anything about the changed character of the
GC'ing?  (The pool objects are being promoted to tenured gen because
they stick around longer and the clean up of the content in tenured
gen is whats taking longer?  Or the copying of retained objects now
you are using a packet pool -- where before they were being released
-- in young gen is whats making the GC take longer?)

> I cann't see why? And wish
> some one can told me why? may be the reason is gc.
>   Although average RT increase,but more request has little rt and also more
> request has a big rt,so the  average RT increase.
>

Thanks,
St.Ack

Reply via email to