[lxc-users] Limiting number of cores in a container
Stéphane Graber
stgraber at ubuntu.com
Sun Sep 6 00:45:49 UTC 2015
On Sat, Sep 05, 2015 at 05:09:25PM -0700, Peter Steele wrote:
> Our application needs to limit the number of cores a container can
> use. With libvirt-lxc I use the command "virsh setvpus" to set the
> number of cores a container can use. With this command you only have
> to specify the number of cores assigned to the container, not a
> specific core number. I can't seem to find an equivalent for this
> with LXC. I've found the parameter lxc.cgroup.cpuset.cpus that can
> be set to bind a container to use a specific CPU (core?), as well as
> the parameter lxc.cgroup.cpu.shares that can be used to designate a
> number of CPU "shares" to be assigned to a container, but I'm not
> exactly sure how this works, especially in the case of
> over-committing CPU resources.
>
> Let's assume we have a system with 16 cores that will be hosting
> seven containers. Six of these will be limited to two cores each and
> one will be assigned four cores. With libvirt-lxc I can simply
> assign the desired CPU count to each container and let the system
> would decide how the CPUs are scheduled. In fact, if I had a less
> powerful server, say with 8 cores instead of 16, libvirt would let
> me over-commit the CPUs assigned to my containers, in exactly the
> same way one can over-commit CPUs to VMs. This is very useful in our
> test environment where engineers may not all have high end systems.
> The CentOS lscpu command accurately reflects the virtual CPU count
> of the container, despite how many physical CPUs are actually
> present on the host:
>
> # lscpu
> Architecture: x86_64
> CPU op-mode(s): 32-bit, 64-bit
> Byte Order: Little Endian
> CPU(s): 4
> On-line CPU(s) list: 0-3
> Thread(s) per core: 1
> Core(s) per socket: 1
> Socket(s): 4
> NUMA node(s): 1
>
> This shows a container with four virtual CPUs.
>
> We have an automation system that creates and manages our
> containers. Due to its pending demise, we're migrating from
> libvirt-lxc to "stock" LXC and I'm trying to map the various
> operations used in creating libvirt containers to equivalent
> operations for LXC containers. It's not entirely clear to me how to
> deal with this CPU count issue. Can anyone give me some insight on
> how to setup something at least approximating what we're doing with
> libvirt-lxc?
>
> Thanks.
>
> Peter
lxc.cgroup.cpuset.cpus = 0-3
--
Stéphane Graber
Ubuntu developer
http://www.ubuntu.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.linuxcontainers.org/pipermail/lxc-users/attachments/20150905/3b616b05/attachment.sig>
More information about the lxc-users
mailing list