[
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]