commit fa830587d658f1b35d843c4a71e331dea22a573f Author: Rajesh Tailor Date: Tue Sep 29 17:13:52 2020 +0530 Add ability to manage irqbalance on compute per role Adds functionality whether to enable/disable irqbalance on compute nodes. Based on tuning recommendation for compute realtime nodes irqbalance should be stopped and disabled. And tuned will be responsible for managing IRQ balancing instead of irqbalance. Conflicts: deployment/nova/nova-compute-container-puppet.yaml Change-Id: Ibefb8e472c68901a74d76769b5314bef81fd5b15 (cherry picked from commit 932aecf33c617b97f399d4b197beae7d68fa104c) diff --git a/deployment/nova/nova-compute-container-puppet.yaml b/deployment/nova/nova-compute-container-puppet.yaml index 2d50ce5..72409ca 100644 --- a/deployment/nova/nova-compute-container-puppet.yaml +++ b/deployment/nova/nova-compute-container-puppet.yaml @@ -431,6 +431,13 @@ parameters: default: 86400 tags: - role_specific + NovaComputeDisableIrqBalance: + default: false + description: Whether to disable irqbalance on compute nodes or not. Especially + in Realtime Compute role one wants to keep it disabled. + type: boolean + tags: + - role_specific # DEPRECATED: the following options are deprecated and are currently maintained # for backwards compatibility. They will be removed in future release. @@ -531,6 +538,7 @@ resources: nova::compute::libvirt::pmem_namespaces: NovaPMEMMappings nova_pmem_namespaces: NovaPMEMNamespaces nova::compute::libvirt::remove_unused_original_minimum_age_seconds: NovaImageCacheTTL + compute_disable_irqbalance: NovaComputeDisableIrqBalance - values: {get_param: [RoleParameters]} - values: NovaVcpuPinSet: {get_param: NovaVcpuPinSet} @@ -606,6 +614,7 @@ resources: NovaPMEMMappings: {get_param: NovaPMEMMappings} NovaPMEMNamespaces: {get_param: NovaPMEMNamespaces} NovaImageCacheTTL: {get_param: NovaImageCacheTTL} + NovaComputeDisableIrqBalance: {get_param: NovaComputeDisableIrqBalance} conditions: enable_instance_ha: {equals: [{get_param: EnableInstanceHA}, true]} @@ -1087,6 +1096,15 @@ outputs: with_items: - ksm.service - ksmtuned.service + - name: Is irqbalance enabled + set_fact: + compute_irqbalance_disabled: {get_attr: [RoleParametersValue, value, compute_disable_irqbalance]} + - name: disable irqbalance service on compute + when: compute_irqbalance_disabled|bool + service: + name: irqbalance.service + state: stopped + enabled: no deploy_steps_tasks: - name: validate nova-compute container state podman_container_info: diff --git a/roles/ComputeOvsDpdkRT.yaml b/roles/ComputeOvsDpdkRT.yaml index 0112e5b..2e23bec 100644 --- a/roles/ComputeOvsDpdkRT.yaml +++ b/roles/ComputeOvsDpdkRT.yaml @@ -19,6 +19,7 @@ NovaLibvirtRxQueueSize: 1024 NovaLibvirtTxQueueSize: 1024 NovaLibvirtMemStatsPeriodSeconds: 0 + NovaComputeDisableIrqBalance: True update_serial: 25 ServicesDefault: - OS::TripleO::Services::Aide diff --git a/roles/ComputeOvsDpdkSriovRT.yaml b/roles/ComputeOvsDpdkSriovRT.yaml index 435f060..90cd86e 100644 --- a/roles/ComputeOvsDpdkSriovRT.yaml +++ b/roles/ComputeOvsDpdkSriovRT.yaml @@ -16,6 +16,7 @@ NovaLibvirtRxQueueSize: 1024 NovaLibvirtTxQueueSize: 1024 NovaLibvirtMemStatsPeriodSeconds: 0 + NovaComputeDisableIrqBalance: True update_serial: 25 ServicesDefault: - OS::TripleO::Services::Aide diff --git a/roles/ComputeRealTime.yaml b/roles/ComputeRealTime.yaml index a86fb39..3973956 100644 --- a/roles/ComputeRealTime.yaml +++ b/roles/ComputeRealTime.yaml @@ -25,6 +25,7 @@ NovaComputeCpuDedicatedSet: "" # real-time nodes NovaComputeCpuSharedSet: "" # NovaLibvirtMemStatsPeriodSeconds: 0 + NovaComputeDisableIrqBalance: True update_serial: 25 ServicesDefault: - OS::TripleO::Services::Aide diff --git a/roles/ComputeSriovRT.yaml b/roles/ComputeSriovRT.yaml index 42d9d21..a1226a1 100644 --- a/roles/ComputeSriovRT.yaml +++ b/roles/ComputeSriovRT.yaml @@ -16,6 +16,7 @@ RoleParametersDefault: TunedProfileName: "realtime-virtual-host" NovaLibvirtMemStatsPeriodSeconds: 0 + NovaComputeDisableIrqBalance: True update_serial: 25 ServicesDefault: - OS::TripleO::Services::Aide