for-linux
for-linux copied to clipboard
TCP restransmissions appear when I connect a docker container to macvlan
- [x] This is a bug report
- [ ] This is a feature request
- [x ] I searched existing issues before opening this one
Expected behavior
When I send data through docker containers there is no TCP retransmission.
Actual behavior
I have containers which are attached to bridge (docker default) and also macvlan network. During tests I've found out that if I'm doing a tcpdump on eth0 interface of the docker host machine I see many TCP re-transmissions. To analyse the problem I've used the following image: networkstatic/iperf3.
Steps to reproduce the behavior
- create a macvlan on docker host: docker network create -d macvlan --subnet=${SUBNET} --gateway=${GW} -o parent=${PARENT} ${NETWORK_NAME}
2.docker run -it --rm --name=iperf3-server -p 5201:5201 networkstatic/iperf3 -s
-
docker network connect ${NETWORK_NAME} --ip={IP FROM SUBNET} iperf3-server
-
LOCAL_IP=$(docker inspect --format "{{ .NetworkSettings.IPAddress }}" iperf3-server)
-
docker run -it --rm networkstatic/iperf3 -c $LOCAL_IP
See output: docker run -it --rm networkstatic/iperf3 -c 192.168.204.9 Connecting to host 192.168.204.9, port 5201 [ 4] local 192.168.204.10 port 36518 connected to 192.168.204.9 port 5201 [ ID] Interval Transfer Bandwidth Retr Cwnd [ 4] 0.00-1.00 sec 1.50 GBytes 12.9 Gbits/sec 0 451 KBytes [ 4] 1.00-2.00 sec 1.84 GBytes 15.8 Gbits/sec 0 560 KBytes [ 4] 2.00-3.00 sec 1.86 GBytes 16.0 Gbits/sec 0 560 KBytes [ 4] 3.00-4.00 sec 1.66 GBytes 14.2 Gbits/sec 0 1.97 MBytes [ 4] 4.00-5.00 sec 1.84 GBytes 15.8 Gbits/sec 0 1.97 MBytes [ 4] 5.00-6.00 sec 1.30 GBytes 11.1 Gbits/sec 0 1.97 MBytes [ 4] 6.00-7.00 sec 1.70 GBytes 14.6 Gbits/sec 1171 1.02 MBytes [ 4] 7.00-8.00 sec 1.89 GBytes 16.2 Gbits/sec 423 1.24 MBytes [ 4] 8.00-9.00 sec 1.91 GBytes 16.4 Gbits/sec 0 1.24 MBytes [ 4] 9.00-10.00 sec 1.84 GBytes 15.9 Gbits/sec 0 1.24 MBytes
[ ID] Interval Transfer Bandwidth Retr [ 4] 0.00-10.00 sec 17.3 GBytes 14.9 Gbits/sec 1594 sender [ 4] 0.00-10.00 sec 17.3 GBytes 14.9 Gbits/sec receiver
Please observe: RETR 1594
If I try to measure the performance from another VM on the same network through the macvlan interface I also have TCP re-transmissions.
-
If I remove the container from macvlan no re-transmission appears. docker network disconnect ${NETWORK_NAME} iperf3-server
-
docker run -it --rm networkstatic/iperf3 -c 192.168.204.9 Connecting to host 192.168.204.9, port 5201 [ 4] local 192.168.204.10 port 39320 connected to 192.168.204.9 port 5201 [ ID] Interval Transfer Bandwidth Retr Cwnd [ 4] 0.00-1.00 sec 1.30 GBytes 11.2 Gbits/sec 0 468 KBytes [ 4] 1.00-2.00 sec 1.72 GBytes 14.8 Gbits/sec 0 662 KBytes [ 4] 2.00-3.00 sec 1.62 GBytes 13.9 Gbits/sec 0 850 KBytes [ 4] 3.00-4.00 sec 1.75 GBytes 15.1 Gbits/sec 0 1.11 MBytes [ 4] 4.00-5.00 sec 1.88 GBytes 16.2 Gbits/sec 0 1.11 MBytes [ 4] 5.00-6.00 sec 1.84 GBytes 15.8 Gbits/sec 0 1.17 MBytes [ 4] 6.00-7.00 sec 1.87 GBytes 16.1 Gbits/sec 0 1.17 MBytes [ 4] 7.00-8.00 sec 1.89 GBytes 16.2 Gbits/sec 0 1.17 MBytes [ 4] 8.00-9.00 sec 1.89 GBytes 16.2 Gbits/sec 0 1.17 MBytes [ 4] 9.00-10.00 sec 1.87 GBytes 16.1 Gbits/sec 0 1.42 MBytes
[ ID] Interval Transfer Bandwidth Retr [ 4] 0.00-10.00 sec 17.6 GBytes 15.2 Gbits/sec 0 sender [ 4] 0.00-10.00 sec 17.6 GBytes 15.2 Gbits/sec receiver
Please observ: RETR 0
Output of docker version
:
Client:
Version: 1.12.1
API version: 1.24
Go version: go1.6.3
Git commit: 23cf638
Built: Thu Aug 18 17:52:38 2016
OS/Arch: linux/amd64
Server:
Version: 1.12.1
API version: 1.24
Go version: go1.6.3
Git commit: 23cf638
Built: Thu Aug 18 17:52:38 2016
OS/Arch: linux/amd64
output docker info
Containers: 8
Running: 8
Paused: 0
Stopped: 0
Images: 23
Server Version: 1.12.1
Storage Driver: overlay
Backing Filesystem: extfs
Logging Driver: syslog
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge macvlan null host overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: seccomp
Kernel Version: 4.4.8
Operating System: VMware Photon/Linux
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 7.796 GiB
Name: TestServicelink-1
ID: FSS2:2UXX:7Y26:RLC7:GHI5:XYWR:MANT:DBXC:OVOL:DWVC:OCHO:TV7X
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Http Proxy:
Https Proxy:
Registry: https://index.docker.io/v1/
Insecure Registries:
I am using docker on Photon OS as VM in ESXI 5.5
resurrecting this thread as I'm seeing the same thing. Did you ever get to the bottom of it?
Same here