4 ms·
There are several benchmarks floating around about system call overhead for docker. These are generally low, however, IO overhead in the form of filesystem and
by spooneybarger 9y ago
There are several benchmarks floating around about system call overhead for docker. These are generally low, however, IO overhead in the form of filesystem and network can be quite high.
Over at Wallaroo Labs, we've seen some workloads in Docker at are an order of magnitude worse performance for some workloads. However, in those cases, it was comparing raw performance on OSX vs running on Docker on OSX. IO overhead while it exists, has generally been much lower when running in Docker.
Talking about "specifically using Docker" is a little difficult as Docker is mostly providing a UI over existing Linux technologies and thus, isn't that much different from other LXC based technologies.
If you want to talk about "docker specifics", you should be looking at things like the overlay networking and Docker Swarm.
If you want to provide someone an environment where you know your software will work because you've tested that specific environment then containers are a very nice way to accomplish that.
I'm not sure what you consider the "hassle of containerization". I'm not a big fan of Docker. The UX irritates me as I can never remember how to do anything even if I've done it tons before (and in this way, its very similar to git for me), but the creation of containers is, in my mind, quite easy. Certainly no harder than putting together a `bootstrap.sh` with Vagrant.
Without knowing what your run_install.sh does, its hard to really say much beyond that.
- arseraptor 9y agoI would be very interested to know what network applications show high overhead. Do you have any apps/number you could share? Does high overhead mean they are generally slower or that they consume more CPU or both? (I ask this as a researcher in computer science looking at container overheads)
- spooneybarger 9y agoThe amount of bytes we can push through a network connection (with a single thread), using the same test application is lower when running in Docker than without. Its particularly noticeable with Docker for OSX which shouldnt be surprising as its running a VM. The overhead is much lower on Linux as one would expect. I don't have anything handy. I brought up the OSX overhead as I wanted to be comprehensive given the somewhat ambigous nature of the original question. Docker Swarm inter-container networking is pretty bad. It consistenly collapses on us where throughputs drops by orders of magnitude. I know we weren't alone in this as we found an issue that had been open for the problem for quite some time. (And thus ended our quick experimentation for using Docker Swarm as a demo environment).
- idunno246 9y agoAll of the OS X performance differences is from the busy box vm, not from docker. And for networking, if you use a different network driver than default the performance issues go away - the bridge/proxy stuff is slower, but you can expose raw interfaces. That said I’m also not a fan of docker except in certain cases(ie if you need polyglot deployment). The development story is worse- OS X disk performance is bad, and good luck getting a debugger or most tooling to work. It’s an extra layer to worry about, such as now you manage number of containers and number of servers instead of just servers.
- spooneybarger 9y ago"if you use a different network driver than default the performance issues go away - the bridge/proxy stuff is slower" <-- issues go away does not match our experience. "better than bridge", yes. "goes away however does not match our experiences.
- idunno246 9y agoWe found macvlan did, but I’m sure our tests aren’t exhaustive. Also not talking about swarm networking, know nothing about that.
- spooneybarger 9y agoIn our experience, Swarm intercontainer networking is best avoided.
- facetube 9y agoDocker on native bare-metal Linux is the only shared-kernel implementation of Docker. Docker on other OSs runs Docker on Linux in a virtualized environment. I'd expect performance to suffer.