diff --git a/defaults/main.yml b/defaults/main.yml index b6b27d44..8684796e 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -108,6 +108,10 @@ ceilometer_service_in_ldap: false # ceilometer_collector_workers: 1 # ceilometer_notification_workers: 1 +## Cap the maximum number of threads / workers when a user value is unspecified. +ceilometer_api_threads_max: 16 +ceilometer_api_threads: "{{ [[ansible_processor_vcpus|default(2) // 2, 1] | max, ceilometer_api_threads_max] | min }}" + # Enable/Disable Ceilometer per service glance_ceilometer_enabled: false nova_ceilometer_enabled: false diff --git a/releasenotes/notes/capping_ceilometer_workers-80a768e3aaed0aec.yaml b/releasenotes/notes/capping_ceilometer_workers-80a768e3aaed0aec.yaml new file mode 100644 index 00000000..e8cc2021 --- /dev/null +++ b/releasenotes/notes/capping_ceilometer_workers-80a768e3aaed0aec.yaml @@ -0,0 +1,6 @@ +--- +features: + - Capping the default value for the variables + ``ceilometer_api_workers`` and ``ceilometer_notification_workers`` to + 16 when the user doesn't configure these variables. Default value is half + the number of vCPUs available on the machine with a capping value of 16. diff --git a/templates/ceilometer.conf.j2 b/templates/ceilometer.conf.j2 index fa32900e..fc051314 100644 --- a/templates/ceilometer.conf.j2 +++ b/templates/ceilometer.conf.j2 @@ -1,8 +1,5 @@ #{{ ansible_managed}} -{% set _workers = ansible_processor_vcpus|default(2) // 2 %} -{% set workers = _workers if _workers > 0 else 1 %} - [DEFAULT] # Disable stderr logging use_stderr = False @@ -33,7 +30,7 @@ rabbit_use_ssl = {{ ceilometer_rabbitmq_use_ssl }} [api] gnocchi_is_enabled = {{ ceilometer_gnocchi_enabled | bool }} -workers = {{ ceilometer_api_workers | default(workers) }} +workers = {{ ceilometer_api_workers | default(ceilometer_api_threads) }} port = 8777 [collector] @@ -44,7 +41,7 @@ batch_timeout = 5 {% endif %} [notification] -workers = {{ ceilometer_notification_workers | default(workers) }} +workers = {{ ceilometer_notification_workers | default(ceilometer_api_threads) }} store_events = {{ not ceilometer_gnocchi_enabled | bool }} # Notification queues to listen on