Managing Internal Settings
- reference
Couchbase-Server internal settings can be retrieved and modified..
HTTP methods and URIs
GET /internalSettings POST /internalSettings GET /settings/maxParallelIndexers POST /settings/maxParallelIndexers
Description
Couchbase-Server internal settings can be inspected and modified, in order to control cluster-performance.
The settings detailed on this page are meant for performance tuning. Rigorous and careful testing of any changes to these settings should be made in a non-production environment that is representative, in load and scale, of production data before implementing in production. Incorrect settings can cause severe impacts to cluster performance or operation due to resource consumption. Couchbase makes no recommendations for tuning beyond the default settings. Any changes to these settings not explicitly recommended by Couchbase Employees are not supported by Couchbase. |
Curl Syntax
curl -u <username>:<password> -X GET \ http://<ip-address-or-domain-name>:8091/internalSettings curl -u <username>:<password> -X POST \ http://<ip-address-or-domain-name>:8091/internalSettings [-d <internalSetting>=<value>]* curl -u <username>:<password> -X GET \ http://<ip-address-or-domain-name>:8091/internalSettings/maxParallelIndexers curl -u <username>:<password> -X POST \ http://<ip-address-or-domain-name>:8091/internalSettings/maxParallelIndexers -d globalValue=<value>
The /internalSettings/maxParallelIndexers
URI relates to View index configuration only.
Note that it does not apply to the GSI indexes provided by the Index Service.
When POST
is used with this URI, the integer-value
specified by means of the globalValue
parameter must be between 1
and 1024
.
The default is 4
.
All commands require either the Full Admin or Cluster Admin role.
Responses
If successful, GET
and POST
commands return 200 OK
; and a JSON object containing all current general internal settings.
Failure to authenticate returns 401 Unauthorized
.
A URI featuring an incorrect hostname or port returns 404 Object Not Found
and an object containing an error message.
For example:
{ "error": "not_found", "reason": "missing" }
Incorrect specification of a setting-change returns 400 Bad Request
and an object containing an error message, such as the following:
{"errors":["Unknown key rebalanceMovesPerNoede"]}
If a cluster contains any node running a version of Couchbase Server less that 7.1, an attempt to change the eventLogLimit
produces the following error message: not supported in mixed version clusters
.
Examples
The following example returns general internal settings for the cluster. Note that the output is piped to the jq command, to facilitate readability.
curl -u Administrator:password -X GET http://10.144.220.101:8091/internalSettings | jq '.'
If successful, the command returns output such as the following:
{ "enforceLimits": false, "indexAwareRebalanceDisabled": false, "rebalanceIndexWaitingDisabled": false, "rebalanceIndexPausingDisabled": false, "rebalanceIgnoreViewCompactions": false, "rebalanceMovesPerNode": 4, "rebalanceMovesBeforeCompaction": 64, "maxParallelIndexers": 4, "maxParallelReplicaIndexers": 2, "maxBucketCount": 30, "eventLogsLimit": 10000, "gotraceback": "single", "indexAutoFailoverDisabled": true, "certUseSha1": false, "httpNodeAddition": false }
To change a setting, use the POST
method, specifying the setting as an argument, and specifying its new value.
For example:
curl -u Administrator:password -X POST http://10.144.210.101:8091/internalSettings -d rebalanceMovesPerNode=4
If successful, the command returns 200 OK
, and an empty array.
To check the result, use the GET
method again:
curl -u Administrator:password -X GET http://10.144.210.101:8091/internalSettings | jq '.' | grep rebalanceMovesPer
This returns the following output:
"rebalanceMovesPerNode": 4,
This confirms that the change was successful.
To inspect the current setting for maxParallelIndexers
, enter the following:
curl -u Administrator:password -X GET http://10.144.210.101:8091/settings/maxParallelIndexers
If successful, this returns output such as the following:
{"globalValue":4,"nodes":{"ns_1@10.144.210.101":4}}
To change the value, specify the new value by means of the globalValue
argument:
curl -u Administrator:password -X POST http://10.144.210.101:8091/settings/maxParallelIndexers -d globalValue=3
The output displays that the value has been successfully changed:
{"globalValue":3,"nodes":{"ns_1@10.144.210.101":3}}
Note that the value is thus established cluster-wide.
To change the current size for the system log (which is described in System Events), use the eventLogsLimit
argument.
The value should be an integer, specifying the number of logs.
The smallest acceptable value is 3000
, and the highest 20000
.
Note that this value can only be changed when every node in the cluster is running Couchbase Server Version 7.1 or higher.
curl -u Administrator:password -X POST http://10.144.220.101:8091/internalSettings -d eventLogsLimit=15000
If successful, the call returns an empty array.
The modified value can be checked by means of the GET
method, which returns output such as the following:
{ "enforceLimits": false, "indexAwareRebalanceDisabled": false, "rebalanceIndexWaitingDisabled": false, "rebalanceIndexPausingDisabled": false, "rebalanceIgnoreViewCompactions": false, "rebalanceMovesPerNode": 4, "rebalanceMovesBeforeCompaction": 64, "maxParallelIndexers": 4, "maxParallelReplicaIndexers": 2, "maxBucketCount": 30, "eventLogsLimit": 15000, "gotraceback": "single", "indexAutoFailoverDisabled": true, "certUseSha1": false, "httpNodeAddition": false }
This confirms that the current size of the eventLogsLimit
is now 15k.