.. _resource-constraints: ===================================== Resource Constraints in Kolla Ansible ===================================== Overview ~~~~~~~~ Since the Rocky release it is possible to restrict the resource usage of deployed containers. The following components support this feature: * Nova In Kolla Ansible, container resources to be constrained are referred to as dimensions. The `Docker documentation `__ provides information on container resource constraints. The resources currently supported by Kolla Ansible are: .. code-block:: console cpu_period cpu_quota cpu_shares cpuset_cpus cpuset_mems mem_limit mem_reservation memswap_limit kernel_memory blkio_weight .. end Pre-deployment Configuration ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Dimensions are defined as a mapping from a Docker resource name (e.g. ``cpu_period``) to a string constraint value. The variable ``default_container_dimensions`` sets the default dimensions for all supported containers, and by default these are unconstrained. Each supported container has an associated variable, ``_dimensions``, that can be used to set the resources for the container. For example, dimensions for the ``nova_libvirt`` container are set via the variable ``nova_libvirt_dimensions``. For example, to constrain the number of CPUs that may be used by all supported containers, add the following to the dimensions options section in ``/etc/kolla/globals.yml``: .. code-block:: yaml default_container_dimensions: cpuset_cpus: "1" .. end For example, to constrain the number of CPUs that may be used by the ``nova_libvirt`` container, add the following to the dimensions options section in ``/etc/kolla/globals.yml``: .. code-block:: yaml nova_libvirt_dimensions: cpuset_cpus: "2" .. end Deployment ~~~~~~~~~~ To deploy resource constrained containers, run the deployment as usual: .. code-block:: console $ kolla-ansible deploy -i /path/to/inventory .. end