@andre1sk @sztosz Unfortunately cgroups, and therefore docker, and therefore Kubernetes, and therefore Gigalixir makes understanding CPU shares a little confusing. The gist of it is, if you have N containers on a Kubernetes node and they are given weights [w(0)..w(N)], then the proportion of CPU container i gets is w(i)/sum(w). On Gigalixir, the most common machine type we use has 4 CPUS and 16GB of memory. I've tried to set it up so that when you buy 1GB of memory, you get 1/4 CPU to max utilize the machine. In practice, the machine is never "full" so you'll get more than 1/4 CPU. In fact, Kubernetes ensures that the machine is never more than 80% utilized.
Basically, you get a proportion of CPU relative to what else is on the machine, but it will never be less than 1/4 CPU when you buy 1GB.
See the CPU shares section here for more: https://engineering.squarespace.com/blog/2017/understanding-linux-container-scheduling