[ 
https://issues.apache.org/jira/browse/DISPATCH-1947?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17284064#comment-17284064
 ] 

Charles E. Rolke commented on DISPATCH-1947:
--------------------------------------------

Start with the flow control design from kgiusti [PR 
1029|https://github.com/apache/qpid-dispatch/pull/1029].
 TCP is modified to use it. Initial iperf3 results on a single router are 
presented here.
{code:java}
First test with kgiusti adpator_q2_http1 branch flow control
with application to TCP adaptor on single router.

Summary
=======

Test               RouterBufSize TCP R/W_BUFFERS Sender bps Rcvr bps
------------------ ------------- --------------- ---------- --------
direct (no router) n/a           n/a             37.8 G     37.8 G
stock qdrouterd    512           4               581  M     573  M
bigger chunks      512           16              490  M     0        Note 1
bigger buffers     2048          4               1.47 G     1.46 G

Note 1. Setting TCP READ_BUFFERS, WRITE_BUFFERS to 16 led to a hang.
The client did not exit and required ^C; the router did not respond to ^C
and had to be killed.

Details
=======

Direct to iperf3 server
-----------------------

chug@unused iperf-unused> iperf3 -c unused -p 5201
Connecting to host unused, port 5201
[  5] local 192.168.1.17 port 41394 connected to 192.168.1.17 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  4.41 GBytes  37.9 Gbits/sec    0   1.06 MBytes       
[  5]   1.00-2.00   sec  4.36 GBytes  37.4 Gbits/sec    0   1.06 MBytes       
[  5]   2.00-3.00   sec  4.43 GBytes  38.0 Gbits/sec    0   1.19 MBytes       
[  5]   3.00-4.00   sec  4.39 GBytes  37.7 Gbits/sec    0   1.19 MBytes       
[  5]   4.00-5.00   sec  4.42 GBytes  37.9 Gbits/sec    0   1.94 MBytes       
[  5]   5.00-6.00   sec  4.40 GBytes  37.8 Gbits/sec    0   1.94 MBytes       
[  5]   6.00-7.00   sec  4.42 GBytes  37.9 Gbits/sec    0   2.94 MBytes       
[  5]   7.00-8.00   sec  4.40 GBytes  37.8 Gbits/sec    0   2.94 MBytes       
[  5]   8.00-9.00   sec  4.42 GBytes  37.9 Gbits/sec    0   2.94 MBytes       
[  5]   9.00-10.00  sec  4.39 GBytes  37.7 Gbits/sec    0   2.94 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  44.0 GBytes  37.8 Gbits/sec    0             sender
[  5]   0.00-10.00  sec  44.0 GBytes  37.8 Gbits/sec                  receiver

iperf Done.

Through otherwise stock TCP adaptor
-----------------------------------

chug@unused iperf-unused> iperf3 -c unused -p 5202
Connecting to host unused, port 5202
[  5] local 192.168.1.17 port 53736 connected to 192.168.1.17 port 5202
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  62.1 MBytes   521 Mbits/sec    0   1.25 MBytes       
[  5]   1.00-2.00   sec  57.5 MBytes   482 Mbits/sec    0   1.25 MBytes       
[  5]   2.00-3.00   sec  57.5 MBytes   482 Mbits/sec    0   1.25 MBytes       
[  5]   3.00-4.00   sec  57.5 MBytes   482 Mbits/sec    0   1.25 MBytes       
[  5]   4.00-5.00   sec  57.5 MBytes   482 Mbits/sec    0   1.25 MBytes       
[  5]   5.00-6.00   sec  58.8 MBytes   493 Mbits/sec    0   1.25 MBytes       
[  5]   6.00-7.00   sec  58.8 MBytes   493 Mbits/sec    0   1.25 MBytes       
[  5]   7.00-8.00   sec  57.5 MBytes   482 Mbits/sec    0   1.25 MBytes       
[  5]   8.00-9.00   sec  56.2 MBytes   472 Mbits/sec    0   1.25 MBytes       
[  5]   9.00-10.00  sec  57.5 MBytes   482 Mbits/sec    0   1.25 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   581 MBytes   487 Mbits/sec    0             sender
[  5]   0.00-10.00  sec   573 MBytes   481 Mbits/sec                  receiver

iperf Done.


Change TCP READ_BUFFERS and WRITE_BUFFERS from 4 to 16
------------------------------------------------------
> iperf3 -c unused -p 5202
Connecting to host unused, port 5202
[  5] local 192.168.1.17 port 53780 connected to 192.168.1.17 port 5202
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  63.8 MBytes   535 Mbits/sec    0   1.19 MBytes       
[  5]   1.00-2.00   sec  57.5 MBytes   482 Mbits/sec    0   1.19 MBytes       
[  5]   2.00-3.00   sec  56.2 MBytes   472 Mbits/sec    0   1.19 MBytes       
[  5]   3.00-4.00   sec  57.5 MBytes   482 Mbits/sec    0   1.19 MBytes       
[  5]   4.00-5.00   sec  58.8 MBytes   493 Mbits/sec    0   1.19 MBytes       
[  5]   5.00-6.00   sec  56.2 MBytes   472 Mbits/sec    0   1.19 MBytes       
[  5]   6.00-7.00   sec  60.0 MBytes   503 Mbits/sec    0   1.19 MBytes       
[  5]   7.00-8.00   sec  60.0 MBytes   503 Mbits/sec    0   1.19 MBytes       
[  5]   8.00-9.00   sec  58.8 MBytes   493 Mbits/sec    0   1.19 MBytes       
^C[  5]  10.00-39.50  sec  0.00 Bytes  0.00 bits/sec    0   1.19 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-39.50  sec   585 MBytes   124 Mbits/sec    0             sender
[  5]   0.00-39.50  sec  0.00 Bytes  0.00 bits/sec                  receiver
iperf3: interrupt - the client has terminated


back to read/write 4; set dispatch buffer size to 2048
------------------------------------------------------

> iperf3 -c unused -p 5202
Connecting to host unused, port 5202
[  5] local 192.168.1.17 port 53880 connected to 192.168.1.17 port 5202
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   182 MBytes  1.53 Gbits/sec    0   1.19 MBytes       
[  5]   1.00-2.00   sec   176 MBytes  1.48 Gbits/sec    0   1.19 MBytes       
[  5]   2.00-3.00   sec   172 MBytes  1.45 Gbits/sec    0   1.19 MBytes       
[  5]   3.00-4.00   sec   175 MBytes  1.47 Gbits/sec    0   1.19 MBytes       
[  5]   4.00-5.00   sec   175 MBytes  1.47 Gbits/sec    0   1.19 MBytes       
[  5]   5.00-6.00   sec   175 MBytes  1.47 Gbits/sec    0   1.19 MBytes       
[  5]   6.00-7.00   sec   175 MBytes  1.47 Gbits/sec    0   1.19 MBytes       
[  5]   7.00-8.00   sec   175 MBytes  1.47 Gbits/sec    0   1.19 MBytes       
[  5]   8.00-9.00   sec   172 MBytes  1.45 Gbits/sec    0   1.19 MBytes       
[  5]   9.00-10.00  sec   174 MBytes  1.46 Gbits/sec    0   1.19 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  1.71 GBytes  1.47 Gbits/sec    0             sender
[  5]   0.00-10.00  sec  1.70 GBytes  1.46 Gbits/sec                  receiver

iperf Done.
{code}

> TCP adaptor has no receive flow control
> ---------------------------------------
>
>                 Key: DISPATCH-1947
>                 URL: https://issues.apache.org/jira/browse/DISPATCH-1947
>             Project: Qpid Dispatch
>          Issue Type: Bug
>          Components: Protocol Adaptors
>            Reporter: Charles E. Rolke
>            Assignee: Charles E. Rolke
>            Priority: Major
>
> When offered an infinite incoming data stream then the TCP adaptor always 
> reads as much as it can. Fast input going to slow output results in unbounded 
> memory growth.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to