Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
-
Reviewed
-
Introduces a new configuration setting dfs.client.socket.send.buffer.size to control the socket send buffer size for writes. Setting it to zero enables TCP auto-tuning on systems that support it.
Description
We recently found that cross-DC hdfs write could be really slow. Further investigation identified that is due to SendBufferSize and ReceiveBufferSize used for hdfs write. The test ran "hadoop -fs -copyFromLocal" of a 256MB file across DC with different SendBufferSize and ReceiveBufferSize values. The results showed that c much faster than b; b is faster than a.
a. SendBufferSize=128k, ReceiveBufferSize=128k (hdfs default setting).
b. SendBufferSize=128K, ReceiveBufferSize=not set(TCP auto tuning).
c. SendBufferSize=not set, ReceiveBufferSize=not set(TCP auto tuning for both)
HDFS-8829 has enabled scenario b. We would like to enable scenario c by making SendBufferSize configurable at DFSClient side. Cc: cmccabe He Tianyi kanaka vinayrpet.
Attachments
Attachments
Issue Links
- is related to
-
HDFS-10326 Disable setting tcp socket send/receive buffers for write pipelines
- Resolved
- relates to
-
HDFS-8829 Make SO_RCVBUF and SO_SNDBUF size configurable for DataTransferProtocol sockets and allow configuring auto-tuning
- Resolved
-
HDFS-12823 Backport HDFS-9259 "Make SO_SNDBUF size configurable at DFSClient" to branch-2.7
- Resolved