From b2a439fd0fb060a75cdd0bafa0c10bffdfefe546 Mon Sep 17 00:00:00 2001 From: Rajesh Tailor Date: Tue, 29 Sep 2020 17:13:52 +0530 Subject: [PATCH] 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) --- .../nova/nova-compute-container-puppet.yaml | 18 ++++++++++++++++++ roles/ComputeOvsDpdkRT.yaml | 1 + roles/ComputeOvsDpdkSriovRT.yaml | 1 + roles/ComputeRealTime.yaml | 1 + roles/ComputeSriovRT.yaml | 1 + 5 files changed, 22 insertions(+) diff --git a/deployment/nova/nova-compute-container-puppet.yaml b/deployment/nova/nova-compute-container-puppet.yaml index fc3768c1ec..ae033238be 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 b97258c62e..abeaa2e027 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 bcdeaa2bdd..b9d2bd7fdf 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 0fc97259d5..8f5748c475 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 4c57aafdf0..d69a422614 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