I run docker in swarm mode to scale Elasticsearch nodes. One such task (container) has a quite heavy I/O load on the hard disk (SSD). CPU and memory is not the bottleneck here (powerful machines). In fact, the CPU and memory of one node could handle at least four such tasks, but that would never work because of the high I/O load.
Wouldn’t it be nice, to define, how much I/O one service instance “needs” in percentage. Than the docker swarm checks on scaling up, which node has enough “free” load. Obviously this is just a virtual value only interpreted by the orchastrator, because docker can not reserve load from the system, but it would help a lot.
So i can define my ES-Service with “80% load needed” and that ensures, that several of this nodes would never run on the same node.