DataNode的无GC行为(HDFS)
12年3月3月2日月2日2日日 22:35:25
Hadoop的datanode可以只使用很少内存(xmx1g),而且可以通过
jstat -gcutil <pid> 1000 1000
来看进程的垃圾回收情况,会发现FCT,YGCT都是非常少的。
对例如是写操作:
可以在DataXceiver(据说,这个名字是错的...^_^)看到:
writeData(DataInputStream in),
这个负责接收网络数据,然后传到后续的mirror servers,这个是网络来,网络去;
然后写本地文件时,还是通过ByteBuffer,这个buf是网络和本地硬盘的同一buffer。
解释一下ByteBuffer,是java NIO 指定的封疆大臣。
简单地来说,使用这个,避免了java heap上的new/gc~