FIX access database failed 67/27267/1
authorliyuenan <liyuenan@huawei.com>
Fri, 20 Jan 2017 05:15:00 +0000 (13:15 +0800)
committerliyuenan <liyuenan@huawei.com>
Fri, 20 Jan 2017 05:29:56 +0000 (13:29 +0800)
JIRA: COMPASS-521

Number of separate API worker processes for service. The default is calculated by
the number of CPUs available for best performance. But some pods have many CPUs,
so that some service API worker processes is too many to access database.
For example, huawei-pod2 has 47 CPUs, nova-api has 98 processes, cinder-api has
50 processes and heat-api has 33 processes, when aodh want to initialize the database,
mysql can not deal with this processes.

Change-Id: I00513883ff55cc28cd676c3085615aaac36eb744
Signed-off-by: liyuenan <liyuenan@huawei.com>
deploy/adapters/ansible/openstack/templates/nova.conf
deploy/adapters/ansible/roles/cinder-controller/templates/cinder.conf
deploy/adapters/ansible/roles/heat/templates/heat.j2
deploy/adapters/ansible/roles/heat/templates/heat_debian.j2 [deleted file]

index 4a7bb0a..99071d7 100644 (file)
@@ -39,6 +39,10 @@ notification_driver = nova.openstack.common.notifier.rpc_notifier
 notification_driver = ceilometer.compute.nova_notifier
 memcached_servers = {{ memcached_servers }}
 
+{% if ansible_processor_vcpus > 30 %}
+osapi_compute_workers = 30
+{% endif %}
+
 [database]
 # The SQLAlchemy connection string used to connect to the database
 connection = mysql://nova:{{ NOVA_DBPASS }}@{{ db_host }}/nova
index d428a07..05a1c8f 100644 (file)
@@ -35,6 +35,9 @@ quota_driver = cinder.quota.DbQuotaDriver
 
 osapi_volume_listen = {{ storage_controller_host }}
 osapi_volume_listen_port = 8776
+{% if ansible_processor_vcpus > 30 %}
+osapi_volume_workers = 30
+{% endif %}
 
 db_backend = sqlalchemy
 volume_name_template = volume-%s
index 72d4b61..a785610 100644 (file)
@@ -12,6 +12,14 @@ log_dir = /var/log/heat
 stack_domain_admin = heat_domain_admin
 stack_domain_admin_password = {{ HEAT_PASS }}
 stack_user_domain_name = heat
+{% if ansible_processor_vcpus > 30 %}
+num_engine_workers = 30
+{% endif %}
+
+[heat_api]
+{% if ansible_processor_vcpus > 30 %}
+workers = 30
+{% endif %}
 
 [database]
 connection = mysql://heat:{{ HEAT_DBPASS }}@{{ db_host }}/heat
diff --git a/deploy/adapters/ansible/roles/heat/templates/heat_debian.j2 b/deploy/adapters/ansible/roles/heat/templates/heat_debian.j2
deleted file mode 100644 (file)
index 62df9fd..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-[DEFAULT]
-heat_metadata_server_url = http://{{ internal_vip.ip }}:8000
-heat_waitcondition_server_url = http://{{ internal_vip.ip }}:8000/v1/waitcondition
-rpc_backend = rabbit
-rabbit_host = {{ rabbit_host }}
-rabbit_userid = {{ RABBIT_USER }}
-rabbit_password = {{ RABBIT_PASS }}
-log_dir = /var/log/heat
-stack_domain_admin = heat_domain_admin
-stack_domain_admin_password = {{ HEAT_PASS }}
-stack_user_domain_name = heat
-
-[database]
-connection = mysql://heat:{{ HEAT_DBPASS }}@{{ db_host }}/heat
-idle_timeout = 30
-use_db_reconnect = True
-pool_timeout = 10
-
-[ec2authtoken]
-auth_uri = http://{{ internal_vip.ip }}:5000/v2.0
-
-[keystone_authtoken]
-auth_uri = http://{{ internal_vip.ip }}:5000/v2.0
-identity_uri = http://{{ internal_vip.ip }}:35357
-admin_tenant_name = service
-admin_user = heat
-admin_password = {{ HEAT_PASS }}
-