Packet utilization rate is low, because when sync a new packet will be forced to be created. The smaller the key/value, the low the utilization rate will be.
2012/7/29 宾莉金 <[email protected]> > hi, all devs > Current when FSDataOutputStream's write and sync method are called a > new Packet may be created and put into dataQueue, the daemon DataStreamer > will get packet from the dataQueue and write to datanode. > 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. > If 1024 Packet are created one second,64M+ garbage is produced one > second. > 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. 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. > > > > -- > *Best Regards,* > lijin bin > -- *Best Regards,* lijin bin
