Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Duplicate
-
None
-
None
-
None
-
None
-
Linux 2.6.9-55 , Dual Core Opteron 280 2.4Ghz , 4GB memory
Description
preads() establish new connections per request. yourkit java profiles show that this connection overhead is pretty significant on the DataNode.
I wrote a simple microbenchmark program which does many iterations of pread() from different offsets of a large file. I hacked DFSClient/DataNode code to re-use the same connection/DataNode request handler thread. The performance improvement was 7% when the data is served from disk and 80% when the data is served from the OS page cache.