diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml
index 36b7eb4499..7eaacd14aa 100644
--- a/ansible/group_vars/all.yml
+++ b/ansible/group_vars/all.yml
@@ -287,6 +287,7 @@ multiple_regions_names:
     - "{{ openstack_region_name }}"
 
 openstack_service_workers: "{{ [ansible_processor_vcpus, 5]|min if orchestration_engine == 'ANSIBLE' else '1'}}"
+openstack_service_rpc_workers: "{{ [ansible_processor_vcpus, 3]|min if orchestration_engine == 'ANSIBLE' else '1'}}"
 
 # Optionally allow Kolla to set sysctl values
 set_sysctl: "yes"
diff --git a/ansible/roles/neutron/templates/neutron.conf.j2 b/ansible/roles/neutron/templates/neutron.conf.j2
index ed20d64fd9..97dc71f5fd 100644
--- a/ansible/roles/neutron/templates/neutron.conf.j2
+++ b/ansible/roles/neutron/templates/neutron.conf.j2
@@ -16,6 +16,8 @@ endpoint_type = internalURL
 
 api_workers = {{ openstack_service_workers }}
 metadata_workers = {{ openstack_service_workers }}
+rpc_workers = {{ openstack_service_rpc_workers }}
+rpc_state_report_workers = {{ openstack_service_rpc_workers }}
 
 # NOTE(SamYaple): We must specify this value here rather than the metadata conf
 # because it is used by the l3 and dhcp agents. The reason the path has 'kolla'