commit b2a439fd0fb060a75cdd0bafa0c10bffdfefe546 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) (cherry picked from commit fa830587d658f1b35d843c4a71e331dea22a573f) diff --git a/deployment/nova/nova-compute-container-puppet.yaml b/deployment/nova/nova-compute-container-puppet.yaml index fc3768c..ae03323 100644 --- a/deployment/nova/nova-compute-container-puppet.yaml +++ b/deployment/nova/nova-compute-container-puppet.yaml @@ -406,6 +406,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. @@ -505,6 +512,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} @@ -579,6 +587,7 @@ resources: NovaPMEMMappings: {get_param: NovaPMEMMappings} NovaPMEMNamespaces: {get_param: NovaPMEMNamespaces} NovaImageCacheTTL: {get_param: NovaImageCacheTTL} + NovaComputeDisableIrqBalance: {get_param: NovaComputeDisableIrqBalance} conditions: insecure_registry_is_empty: {equals : [{get_param: DockerInsecureRegistryAddress}, []]} @@ -1062,6 +1071,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 when: diff --git a/roles/ComputeOvsDpdkRT.yaml b/roles/ComputeOvsDpdkRT.yaml index b97258c..abeaa2e 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 bcdeaa2..b9d2bd7 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 0fc9725..8f5748c 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 4c57aaf..d69a422 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