[FoRK] Docker 1.0 was Re: OSX VMs/backup, Re: Dunning-Kruger effect discriminatory environs
J. Andrew Rogers
andrew at jarbox.org
Sun Jun 15 00:05:15 PDT 2014
On Jun 15, 2014, at 7:03 AM, Stephen D. Williams <sdw at lig.net> wrote:
> Besides containers contesting for resources, what are some cases where containers have limitations or work poorly compared to bare metal host OS instances? Considering that most apps are compute+memory+networking+storage (probably via a database connection), most device driver access shouldn't be an issue.
It is a resource contention issue. Some software is designed, intentionally, to assume it has absolute control over every resource it has access to. This allows assumptions that enable algorithm optimization internally with significant performance and robustness benefits. Code will still run in this environment of course but it will manifest reduced performance. An old-ish, trivial example of this is code that runs slower with hyper-threading enabled because the code internals are designed to saturate execution ports for performance. Execution port saturation on Nehalem and later microarchitectures can be good for up to ~2x throughput improvement per core, which is quite a bit more than you’ll get from letting hyper-threading use underutilized execution ports. There are more sophisticated examples in some types of server software that take over the silicon.
The canonical example is high-performance database engines. You don’t see this as much in open source software because it is adds design complexity and reduces portability, but this is also why open source databases engines, for example, have materially lower throughput on the same hardware as some closed source engines running on the same Linux kernels. It is really just a difference in resource utilization efficiency.
Of course, you could carefully configure your Linux host, containers, and deployment patterns to provide an environment that is approximately equivalent to the bare metal expectation as an additional set of constraints. Silicon design is definitely trending to making these types of optimizations important for efficiency and I’ve started to see design toward this creeping into open source around the edges.
More information about the FoRK