You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Zhang, Liye (JIRA)" <ji...@apache.org> on 2016/03/31 11:40:25 UTC

[jira] [Created] (SPARK-14290) Fully utilize the network bandwidth for Netty RPC by avoid significant underlying memory copy

Zhang, Liye created SPARK-14290:
-----------------------------------

             Summary: Fully utilize the network bandwidth for Netty RPC by avoid significant underlying memory copy
                 Key: SPARK-14290
                 URL: https://issues.apache.org/jira/browse/SPARK-14290
             Project: Spark
          Issue Type: Improvement
          Components: Input/Output, Spark Core
    Affects Versions: 1.6.0, 1.5.0, 1.4.0, 1.3.0, 1.2.0, 2.0.0
            Reporter: Zhang, Liye


When netty transfer data that is not from `FileRegion`, data will be transfered as `ByteBuf`, If the data is large, there will occur significant performance issue because there is memory copy underlying in `sun.nio.ch.IOUtil.write`, the CPU is 100% used, and network is very low. We can check it by comparing `NIO` and `Netty` for`spark.shuffle.blockTransferService` in spark 1.4. NIO network bandwidth is much better than Netty.

How to reproduce:
{code}
sc.parallelize(Array(1,2,3),3).mapPartitions(a=>Array(new Array[Double](1024 * 1024 * 50)).iterator).reduce((a,b)=> a).length
{code}

The root cause can referred [here|http://stackoverflow.com/questions/34493320/how-does-buffer-size-affect-nio-channel-performance]. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org