diff --git a/roles/infra/README.md b/roles/infra/README.md index ea18645..7f8215a 100644 --- a/roles/infra/README.md +++ b/roles/infra/README.md @@ -21,6 +21,9 @@ Role Variables | `os_image_size` | `str` | `20G` | | The size to which one-deploy will **try** to adjust the OS image. | | `memory_KiB` | `str` | `2097152` | | Memory amount to be set in XML in Libvirt. | | `vcpu_static` | `str` | `1` | | VCPU amount to be set in XML in Libvirt. | +| `cputune_shares_base` | `int` | `200` | | Base value used to compute PWS (assuming CGv2). | +| `cputune_shares_max` | `int` | `10000` | | PWS value cap (assuming CGv2). | +| `cputune_shares` | `int` | computed | | The proportional weighted share (PWS) for the domain. | | `vnc_max_port` | `str` | `65535` | | Upper limit for VNC ports to start counting-down from. | | `passthrough_fs` | `list` | `[]` | (check below) | Shared HV filesystems to attach to the Front-end VMs. | | | | | | | diff --git a/roles/infra/defaults/main.yml b/roles/infra/defaults/main.yml index d6df348..0d7ac64 100644 --- a/roles/infra/defaults/main.yml +++ b/roles/infra/defaults/main.yml @@ -8,3 +8,6 @@ vnc_max_port: 65535 infra_bridge: br0 infra_bridge_type: bridge passthrough_fs: [] +cputune_shares_base: 200 # twice the OpenNebula's default (for CGv2) +cputune_shares_max: 10000 +cputune_shares: "{{ ((vcpu_static | int) * (cputune_shares_base | int)) | round(0, 'ceil') }}" diff --git a/roles/infra/templates/frontend.xml.jinja b/roles/infra/templates/frontend.xml.jinja index 31ac150..82cc9b4 100644 --- a/roles/infra/templates/frontend.xml.jinja +++ b/roles/infra/templates/frontend.xml.jinja @@ -5,6 +5,9 @@ {{ memory_KiB }} {{ vcpu_static }} + + {{ (cputune_shares if (cputune_shares | int) < (cputune_shares_max | int) else cputune_shares_max) | int }} + /machine