1

Does a virtual bridge (added to /etc/network/interfaces) limit the transfer speed of data from the memory of one lxc/docker container to another?

For example does the memory throughput drop to that of 1G/10G Ethernet or is there no significant difference? That is would the throughput between two processes running on the same machine be almost identical to the two processes running on individual lxc containers on the same host?

2

Virtual interfaces do not artificially limit throughput to a particular data rate, like a physical interface would. However, they do incur software overhead, so you should expect transfer rates to be lower compared to simpler inter-process communication mechanisms, unless the bottleneck is some other factor.

  • Thanks for answering the question. How significant would you estimate the software overhead to be? Could it be quantified using dd or some other bash method? – Greg May 18 '16 at 8:20
  • dd is pretty much useless for any kind of benchmarking. if you want to do network benchmarks, see serverfault.com/questions/12484/… – cas May 18 '16 at 8:35
  • Personally, I like using pv and nc for simple, single-stream TCP performance tests. Something like nc -l -p 12345 | pv >/dev/null at one end and nc ip.address.of.listener 12345 </dev/zero at the other. You can try it on localhost/127.0.0.1 and then across containers and see how it differs. However, this isn't representative of all workloads, so take the results with a grain of sand. I did a quick test and I get 1.6GiB/s on localhost and 1.3GiB/s over a veth interface pair across network namespaces. Dedicated tools like iperf will be more flexible/accurate. – marcan May 18 '16 at 8:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.