Re: [jgroups-dev] Questions on flow control
Bela Ban <[email protected]> Wed, 23 Oct 2013 16:33:01 +0200
| Newsgroups | gmane.comp.java.javagroups.devel |
|---|---|
| Message-ID | <[email protected]> |
On 10/21/13 8:33 PM, Jiadong Wu wrote: > Hi All, > > This is Jiadong. I'm new to jgroups, and I have some questions on the > flow control mechanism of jgroups (3.4.0). When conducting the MPerf > test on a 3-node cluster with GbE interconnection, I noticed that the > default settings in udp.xml performed poorly under congestion. In 1-to-3 > multicasting scenario, default udp.xml delivered an amazing throughput > of 120MB/sec/node with 5K-sized message. However, in 3-to-3 multicasting > scenario, default udp.xml only delivered 45MB/sec/node. The throughput > would drop further to single digit if I injected a continues TCP flow > onto one of the nodes as interference. On my home cluster of 4 nodes (1 GB Network) I can get 150MB/sec. However, I noticed that in our lab I get sub-optimal performance for multicasts. I suspect that this has to do with ethernet flow control (802.x), but have yet to confirm this. In any case, I created JGRP-1507 [1] some time ago, to look into a new multicast flow control algorithm, which (1) takes the amount of traffic into account that's sent by a member P when it is *sent* not when it is *received* and (2) provides an adaptive algorithm (the current alg has a fixed number of bytes). This is the biggest new feature in 3.5, but it'll take some time investigating and testing. There are surprisingly few papers on multicast flow control out there. > At first I suspected that the problem was due to sub-optimal MFC > parameters, but after trying several combinations I found out that > tuning the credit parameters could become a dilemma case even without > interference traffic. > > It seems to me that lowering the credit pool will increase xmit > efficiency under congestion but will also decrease the best-effort > throughput in a congestion-free environment. Correct > With max_credits=50K > min_threshold=0.4 and frag_size=8K, I get a 3-to-3 multicasting > throughput of 90MB/sec/node which is acceptable. However, with such a > small credit pool the 1-to-3 multicasting throughput drops to only > 48MB/sec/node. Yes - that's something that needs to be addressed in [1]. Note that there's also an (experimental) RATE_LIMITER protocol which I wrote to prevent any member from sending more that its share of data to prevent message loss due to the switch getting overwhelmed. > Is it true that the MFC implementation in jgroups 3.4.0 can only handle > congestion statically? Yes > If true, then is it viable to improve MFC with some feedback mechanism (e.g. AMID in TCP)? Yes. The general idea of [1] (beyond the taking into account of bytes when they're sent) is to adjust the credit size based on the loss rate and possibly feedback from members. If you have suggestions / feedback re [1], please feel free to add them to [1]. Cheers, [1] https://issues.jboss.org/browse/JGRP-1507 -- Bela Ban, JGroups lead (http://www.jgroups.org) ------------------------------------------------------------------------------ October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register > http://pubads.g.doubleclick.net/gampad/clk?id=60135991&iu=/4140/ostg.clktrk _______________________________________________ Javagroups-development mailing list