目标

对比一下docker overlay、calico和host网络的带宽,延迟。

测试环境硬件

  • 千兆网卡 BCM5719
  • CPU E5-2630 0 @ 2.30GHz

测试环境软件

  • kernel 3.10.0-327
  • docker 1.12.3
  • calico 0.23.0

测试的compose

1. calico compose

netperf1:
image: netperf:1.0
net: vnet
restart: always
mem_limit: 20480M
labels:
- "com.alipay.proj=netperf"
environment:
- "affinity:container!=*netperf*"
- "constraint:node==*test1*"
command: /sbin/init
netperf2:
image: netperf:1.0
net: vnet
restart: always
mem_limit: 20480M
labels:
- "com.alipay.proj=netperf"
environment:
- "affinity:container!=*netperf*"
- "constraint:node==*test2*"
command: /sbin/init

2. overlay compose

netperf1:
image: netperf:1.0
net: vxlan
restart: always
mem_limit: 20480M
labels:
- "com.alipay.proj=netperf"
environment:
- "affinity:container!=*netperf*"
- "constraint:node==*test1*"
command: /sbin/init
netperf2:
image: netperf:1.0
net: vxlan
restart: always
mem_limit: 20480M
labels:
- "com.alipay.proj=netperf"
environment:
- "affinity:container!=*netperf*"
- "constraint:node==*test2*"
command: /sbin/init

3. host compose

netperf1:
image: netperf:1.0
net: host
restart: always
mem_limit: 20480M
labels:
- "com.alipay.proj=netperf"
environment:
- "affinity:container!=*netperf*"
- "constraint:node==*test1*"
command: /sbin/init
netperf2:
image: netperf:1.0
net: host
restart: always
mem_limit: 20480M
labels:
- "com.alipay.proj=netperf"
environment:
- "affinity:container!=*netperf*"
- "constraint:node==*test2*"
command: /sbin/init

测试结果

1. host

[root@satest1 /]# time qperf netperf_netperf2_1 –time 20  tcp_bw tcp_lat  udp_lat

tcp_bw:
bw  =  118 MB/sec
tcp_lat:
latency  =  48.2 us
udp_lat:
latency  =  46.1 us

2. calico

[root@55fd7810562d /]# time qperf netperf_netperf2_1 –time 20  tcp_bw tcp_lat  udp_lat

tcp_bw:
bw  =  118 MB/sec
tcp_lat:
latency  =  54.1 us
udp_lat:
latency  =  50.3 us

3. vxlan

[root@1472d4ce9a24 /]# time qperf netperf_netperf2_1 –time 20  tcp_bw tcp_lat  udp_lat

tcp_bw:
bw  =  114 MB/sec
tcp_lat:
latency  =  63.5 us
udp_lat:
latency  =  58.5 us