3 ms·
Ultra-low latency applications on Linux are definitely one domain were containers are a big no-no for performance reasons. In my field (HFT) you won't find any
by bitcharmer 5y ago
Ultra-low latency applications on Linux are definitely one domain were containers are a big no-no for performance reasons. In my field (HFT) you won't find any serious performance-sensitive deployments using containers. So that's one example.
- megous 5y agoWhy would a container increase latency? It's just a pointer on a process. It's there on all processes. https://elixir.bootlin.com/linux/latest/source/include/linux/sched.h#L1080 https://elixir.bootlin.com/linux/latest/source/include/linux...
- geraldwhen 5y agohttps://www.diva-portal.org/smash/get/diva2:1252694/FULLTEXT01.pdf https://www.diva-portal.org/smash/get/diva2:1252694/FULLTEXT... Also docker NAT will add significant latency if you don’t use host network mode. When microseconds matter, everything matters. Any intermediate program would be suspect.
- megous 5y agoThen that's not about containers, but about NAT. So maybe don't use NAT. You can have NAT on the host, too, and it would slow down things also. "Container" (namespace to be precise) is not really an intermediate program, it's a state associated with any Linux process.
- CraigJPerry 5y agoAre you referring to kube rather than containers? A container is just namespaces and cgroups. You can still have your mellanox or solarflare zero-copy network stack for a containerised process. That is, a containerised user space process can directly access the hardware, bypassing the kernel but isolated from other processes. There are plenty of footguns for sure though but my experience working in HFT has been everyone is pretty elite skill-wise so sharp edges are not an issue in practice.