Set the API_WORKERS default to control memory usage. Maximum is nproc / 2 and
minimum is 2.
* Also updates https://review.openstack.org/#/c/117517/ to remove the
conditional test as API_WORKERS should always be set.
* Update https://review.openstack.org/#/c/109058/ for ceilometer to use API_WORKERS
The following reviews can move forward either as-is or with minor tweaks:
* Keystone: https://review.openstack.org/#/c/121384/ - remove the if check
* Swift: https://review.openstack.org/#/c/121456/ - unabandon, the default
to 1 is fine, or remove it to match the others.
* Trove: https://review.openstack.org/#/c/121438/ - remove the if check
https://etherpad.openstack.org/p/devstack-workers has the details
Change-Id: Id28d72ebf01c88b7df301edf7d1dd7ec23fcd0d6
| ... | ... |
@@ -154,7 +154,7 @@ function configure_ceilometer {
|
| 154 | 154 |
|
| 155 | 155 |
if [ "$CEILOMETER_BACKEND" = 'mysql' ] || [ "$CEILOMETER_BACKEND" = 'postgresql' ] ; then |
| 156 | 156 |
iniset $CEILOMETER_CONF database connection `database_connection_url ceilometer` |
| 157 |
- iniset $CEILOMETER_CONF DEFAULT collector_workers $(( ($(nproc) + 1) / 2 )) |
|
| 157 |
+ iniset $CEILOMETER_CONF DEFAULT collector_workers $API_WORKERS |
|
| 158 | 158 |
else |
| 159 | 159 |
iniset $CEILOMETER_CONF database connection mongodb://localhost:27017/ceilometer |
| 160 | 160 |
configure_mongodb |
| ... | ... |
@@ -307,9 +307,7 @@ function configure_cinder {
|
| 307 | 307 |
iniset $CINDER_CONF keystone_authtoken admin_tenant_name $SERVICE_TENANT_NAME |
| 308 | 308 |
iniset $CINDER_CONF keystone_authtoken admin_password $SERVICE_PASSWORD |
| 309 | 309 |
|
| 310 |
- if [ -n "$API_WORKERS" ]; then |
|
| 311 |
- iniset $CINDER_CONF DEFAULT osapi_volume_workers "$API_WORKERS" |
|
| 312 |
- fi |
|
| 310 |
+ iniset $CINDER_CONF DEFAULT osapi_volume_workers "$API_WORKERS" |
|
| 313 | 311 |
} |
| 314 | 312 |
|
| 315 | 313 |
# create_cinder_accounts() - Set up common required cinder accounts |
| ... | ... |
@@ -138,9 +138,7 @@ function configure_glance {
|
| 138 | 138 |
# sections. |
| 139 | 139 |
iniset $GLANCE_API_CONF glance_store filesystem_store_datadir $GLANCE_IMAGE_DIR/ |
| 140 | 140 |
|
| 141 |
- if [ -n "$API_WORKERS" ]; then |
|
| 142 |
- iniset $GLANCE_API_CONF DEFAULT workers "$API_WORKERS" |
|
| 143 |
- fi |
|
| 141 |
+ iniset $GLANCE_API_CONF DEFAULT workers "$API_WORKERS" |
|
| 144 | 142 |
|
| 145 | 143 |
# Store the images in swift if enabled. |
| 146 | 144 |
if is_service_enabled s-proxy; then |
| ... | ... |
@@ -518,11 +518,9 @@ function create_nova_conf {
|
| 518 | 518 |
iniset_rpc_backend nova $NOVA_CONF DEFAULT |
| 519 | 519 |
iniset $NOVA_CONF glance api_servers "$GLANCE_HOSTPORT" |
| 520 | 520 |
|
| 521 |
- if [ -n "$API_WORKERS" ]; then |
|
| 522 |
- iniset $NOVA_CONF DEFAULT osci_compute_workers "$API_WORKERS" |
|
| 523 |
- iniset $NOVA_CONF DEFAULT ec2_workers "$API_WORKERS" |
|
| 524 |
- iniset $NOVA_CONF DEFAULT metadata_workers "$API_WORKERS" |
|
| 525 |
- fi |
|
| 521 |
+ iniset $NOVA_CONF DEFAULT osci_compute_workers "$API_WORKERS" |
|
| 522 |
+ iniset $NOVA_CONF DEFAULT ec2_workers "$API_WORKERS" |
|
| 523 |
+ iniset $NOVA_CONF DEFAULT metadata_workers "$API_WORKERS" |
|
| 526 | 524 |
} |
| 527 | 525 |
|
| 528 | 526 |
function init_nova_cells {
|
| ... | ... |
@@ -508,10 +508,11 @@ UNDO_REQUIREMENTS=${UNDO_REQUIREMENTS:-True}
|
| 508 | 508 |
# Allow the use of an alternate protocol (such as https) for service endpoints |
| 509 | 509 |
SERVICE_PROTOCOL=${SERVICE_PROTOCOL:-http}
|
| 510 | 510 |
|
| 511 |
-# Sets the maximum number of workers for various services and can restrict |
|
| 511 |
+# Sets the maximum number of workers for most services to reduce |
|
| 512 | 512 |
# the memory used where there are a large number of CPUs present |
| 513 | 513 |
# (the default number of workers for many services is the number of CPUs) |
| 514 |
-# API_WORKERS=4 |
|
| 514 |
+# Also sets the minimum number of workers to 2. |
|
| 515 |
+API_WORKERS=${API_WORKERS:=$(( ($(nproc)/2)<2 ? 2 : ($(nproc)/2) ))}
|
|
| 515 | 516 |
|
| 516 | 517 |
# Local variables: |
| 517 | 518 |
# mode: shell-script |