@@ -56,18 +56,20 @@ coordinating nodes.
56
56
(<<static-cluster-setting,Static>>) The maximum inference cache size allowed.
57
57
The inference cache exists in the JVM heap on each ingest node. The cache
58
58
affords faster processing times for the `inference` processor. The value can be
59
- a static byte sized value (i.e. " 2gb" ) or a percentage of total allocated heap.
60
- The default is " 40%" . See also <<model-inference-circuit-breaker>>.
59
+ a static byte sized value (such as ` 2gb` ) or a percentage of total allocated
60
+ heap. Defaults to ` 40%` . See also <<model-inference-circuit-breaker>>.
61
61
62
62
[[xpack-interference-model-ttl]]
63
63
// tag::interference-model-ttl-tag[]
64
64
`xpack.ml.inference_model.time_to_live` {ess-icon}::
65
- (<<static-cluster-setting,Static>>) The time to live (TTL) for models in the
66
- inference model cache. The TTL is calculated from last access. The `inference`
67
- processor attempts to load the model from cache. If the `inference` processor
68
- does not receive any documents for the duration of the TTL, the referenced model
69
- is flagged for eviction from the cache. If a document is processed later, the
70
- model is again loaded into the cache. Defaults to `5m`.
65
+ (<<static-cluster-setting,Static>>) The time to live (TTL) for trained models in
66
+ the inference model cache. The TTL is calculated from last access. Users of the
67
+ cache (such as the inference processor or inference aggregator) cache a model on
68
+ its first use and reset the TTL on every use. If a cached model is not accessed
69
+ for the duration of the TTL, it is flagged for eviction from the cache. If a
70
+ document is processed later, the model is again loaded into the cache. To update
71
+ this setting in {ess}, see
72
+ {cloud}/ec-add-user-settings.html[Add {es} user settings]. Defaults to `5m`.
71
73
// end::interference-model-ttl-tag[]
72
74
73
75
`xpack.ml.max_inference_processors`::
@@ -77,40 +79,54 @@ adding an `inference` processor to a pipeline is disallowed. Defaults to `50`.
77
79
78
80
`xpack.ml.max_machine_memory_percent`::
79
81
(<<cluster-update-settings,Dynamic>>) The maximum percentage of the machine's
80
- memory that {ml} may use for running analytics processes. (These processes are
81
- separate to the {es} JVM.) Defaults to `30` percent. The limit is based on the
82
- total memory of the machine, not current free memory. Jobs are not allocated to
83
- a node if doing so would cause the estimated memory use of {ml} jobs to exceed
84
- the limit. When the {operator-feature} is enabled, this setting can be updated
85
- only by operator users.
82
+ memory that {ml} may use for running analytics processes. These processes are
83
+ separate to the {es} JVM. The limit is based on the total memory of the machine,
84
+ not current free memory. Jobs are not allocated to a node if doing so would
85
+ cause the estimated memory use of {ml} jobs to exceed the limit. When the
86
+ {operator-feature} is enabled, this setting can be updated only by operator
87
+ users. The minimum value is `5`; the maximum value is `200`. Defaults to `30`.
88
+ +
89
+ --
90
+ TIP: Do not configure this setting to a value higher than the amount of memory
91
+ left over after running the {es} JVM unless you have enough swap space to
92
+ accommodate it and have determined this is an appropriate configuration for a
93
+ specialist use case. The maximum setting value is for the special case where it
94
+ has been determined that using swap space for {ml} jobs is acceptable. The
95
+ general best practice is to not use swap on {es} nodes.
96
+
97
+ --
86
98
87
99
`xpack.ml.max_model_memory_limit`::
88
100
(<<cluster-update-settings,Dynamic>>) The maximum `model_memory_limit` property
89
- value that can be set for any job on this node. If you try to create a job with
90
- a `model_memory_limit` property value that is greater than this setting value,
91
- an error occurs. Existing jobs are not affected when you update this setting.
92
- For more information about the `model_memory_limit` property, see
93
- <<put-analysislimits>>.
101
+ value that can be set for any {ml} jobs in this cluster. If you try to create a
102
+ job with a `model_memory_limit` property value that is greater than this setting
103
+ value, an error occurs. Existing jobs are not affected when you update this
104
+ setting. If this setting is `0` or unset, there is no maximum
105
+ `model_memory_limit` value. If there are no nodes that meet the memory
106
+ requirements for a job, this lack of a maximum memory limit means it's possible
107
+ to create jobs that cannot be assigned to any available nodes. For more
108
+ information about the `model_memory_limit` property, see
109
+ <<ml-put-job,Create {anomaly-jobs}>> or <<put-dfanalytics>>. Defaults to `0`.
94
110
95
111
[[xpack.ml.max_open_jobs]]
96
112
`xpack.ml.max_open_jobs`::
97
113
(<<cluster-update-settings,Dynamic>>) The maximum number of jobs that can run
98
- simultaneously on a node. Defaults to `20`. In this context, jobs include both
99
- {anomaly-jobs} and { dfanalytics-jobs}. The maximum number of jobs is also
100
- constrained by memory usage. Thus if the estimated memory usage of the jobs
101
- would be higher than allowed, fewer jobs will run on a node. Prior to version
102
- 7.1, this setting was a per-node non-dynamic setting. It became a cluster-wide
103
- dynamic setting in version 7.1. As a result, changes to its value after node
104
- startup are used only after every node in the cluster is running version 7.1 or
105
- higher. The maximum permitted value is `512`.
114
+ simultaneously on a node. In this context, jobs include both {anomaly-jobs} and
115
+ {dfanalytics-jobs}. The maximum number of jobs is also constrained by memory
116
+ usage. Thus if the estimated memory usage of the jobs would be higher than
117
+ allowed, fewer jobs will run on a node. Prior to version 7.1, this setting was a
118
+ per-node non-dynamic setting. It became a cluster-wide dynamic setting in
119
+ version 7.1. As a result, changes to its value after node startup are used only
120
+ after every node in the cluster is running version 7.1 or higher. The minimum
121
+ value is `1`; the maximum value is `512`. Defaults to `20 `.
106
122
107
123
`xpack.ml.nightly_maintenance_requests_per_second`::
108
124
(<<cluster-update-settings,Dynamic>>) The rate at which the nightly maintenance
109
125
task deletes expired model snapshots and results. The setting is a proxy to the
110
- <<docs-delete-by-query-throttle,requests_per_second>> parameter used in the
126
+ <<docs-delete-by-query-throttle,` requests_per_second` >> parameter used in the
111
127
delete by query requests and controls throttling. When the {operator-feature} is
112
128
enabled, this setting can be updated only by operator users. Valid values must
113
- be greater than `0.0` or equal to `-1.0` where `-1.0` means a default value is
129
+ be greater than `0.0` or equal to `-1.0`, where `-1.0` means a default value is
114
130
used. Defaults to `-1.0`
115
131
116
132
`xpack.ml.node_concurrent_job_allocations`::
@@ -134,19 +150,19 @@ enabled, this setting can be updated only by operator users.
134
150
135
151
`xpack.ml.max_anomaly_records`::
136
152
(<<cluster-update-settings,Dynamic>>) The maximum number of records that are
137
- output per bucket. The default value is `500`.
153
+ output per bucket. Defaults to `500`.
138
154
139
155
`xpack.ml.max_lazy_ml_nodes`::
140
156
(<<cluster-update-settings,Dynamic>>) The number of lazily spun up {ml} nodes.
141
157
Useful in situations where {ml} nodes are not desired until the first {ml} job
142
- opens. It defaults to `0` and has a maximum acceptable value of `3`. If the
143
- current number of {ml} nodes is greater than or equal to this setting, it is
144
- assumed that there are no more lazy nodes available as the desired number
145
- of nodes have already been provisioned. If a job is opened and this setting has
146
- a value greater than zero and there are no nodes that can accept the job, the
147
- job stays in the `OPENING` state until a new {ml} node is added to the cluster
148
- and the job is assigned to run on that node. When the { operator-feature} is
149
- enabled, this setting can be updated only by operator users .
158
+ opens. If the current number of {ml} nodes is greater than or equal to this
159
+ setting, it is assumed that there are no more lazy nodes available as the
160
+ desired number of nodes have already been provisioned. If a job is opened and
161
+ this setting has a value greater than zero and there are no nodes that can
162
+ accept the job, the job stays in the `OPENING` state until a new {ml} node is
163
+ added to the cluster and the job is assigned to run on that node. When the
164
+ {operator-feature} is enabled, this setting can be updated only by operator
165
+ users. Defaults to `0` .
150
166
+
151
167
IMPORTANT: This setting assumes some external process is capable of adding {ml}
152
168
nodes to the cluster. This setting is only useful when used in conjunction with
@@ -155,65 +171,67 @@ such an external process.
155
171
`xpack.ml.max_ml_node_size`::
156
172
(<<cluster-update-settings,Dynamic>>)
157
173
The maximum node size for {ml} nodes in a deployment that supports automatic
158
- cluster scaling. Defaults to `0b`, which means this value is ignored. If you set
159
- it to the maximum possible size of future {ml} nodes, when a {ml} job is
160
- assigned to a lazy node it can check (and fail quickly) when scaling cannot
161
- support the size of the job. When the { operator-feature} is enabled, this
162
- setting can be updated only by operator users.
174
+ cluster scaling. If you set it to the maximum possible size of future {ml} nodes,
175
+ when a {ml} job is assigned to a lazy node it can check (and fail quickly) when
176
+ scaling cannot support the size of the job. When the {operator-feature} is
177
+ enabled, this setting can be updated only by operator users. Defaults to `0b`,
178
+ which means it will be assumed that automatic cluster scaling can add arbitrarily large nodes to the cluster.
163
179
164
180
`xpack.ml.persist_results_max_retries`::
165
181
(<<cluster-update-settings,Dynamic>>) The maximum number of times to retry bulk
166
182
indexing requests that fail while processing {ml} results. If the limit is
167
183
reached, the {ml} job stops processing data and its status is `failed`. When the
168
184
{operator-feature} is enabled, this setting can be updated only by operator
169
- users. Defaults to `20`. The maximum value for this setting is `50`.
185
+ users. The minimum value is `0`; the maximum value is `50`. Defaults to `20`.
170
186
171
187
`xpack.ml.process_connect_timeout`::
172
188
(<<cluster-update-settings,Dynamic>>) The connection timeout for {ml} processes
173
- that run separately from the {es} JVM. Defaults to `10s`. Some {ml} processing
174
- is done by processes that run separately to the {es} JVM. When such processes
175
- are started they must connect to the {es} JVM. If such a process does not
176
- connect within the time period specified by this setting then the process is
177
- assumed to have failed. When the {operator-feature} is enabled, this setting can
178
- be updated only by operator users. Defaults to `10s`. The minimum value for this
179
- setting is `5s`.
189
+ that run separately from the {es} JVM. When such processes are started they must
190
+ connect to the {es} JVM. If the process does not connect within the time period
191
+ specified by this setting then the process is assumed to have failed. When the
192
+ {operator-feature} is enabled, this setting can be updated only by operator
193
+ users. The minimum value is `5s`. Defaults to `10s`.
180
194
181
195
xpack.ml.use_auto_machine_memory_percent::
182
196
(<<cluster-update-settings,Dynamic>>) If this setting is `true`, the
183
197
`xpack.ml.max_machine_memory_percent` setting is ignored. Instead, the maximum
184
198
percentage of the machine's memory that can be used for running {ml} analytics
185
199
processes is calculated automatically and takes into account the total node size
186
- and the size of the JVM on the node. The default value is `false`. If this
187
- setting differs between nodes, the value on the current master node is heeded.
188
- When the {operator-feature} is enabled, this setting can be updated only by
189
- operator users.
200
+ and the size of the JVM on the node. If this setting differs between nodes, the
201
+ value on the current master node is heeded. When the {operator-feature} is
202
+ enabled, this setting can be updated only by operator users. The default value
203
+ is `false`.
190
204
+
191
- TIP: If you do not have dedicated {ml} nodes (that is to say, the node has
205
+ --
206
+ [IMPORTANT]
207
+ ====
208
+ * If you do not have dedicated {ml} nodes (that is to say, the node has
192
209
multiple roles), do not enable this setting. Its calculations assume that {ml}
193
210
analytics are the main purpose of the node.
194
- +
195
- IMPORTANT: The calculation assumes that dedicated {ml} nodes have at least
211
+ * The calculation assumes that dedicated {ml} nodes have at least
196
212
`256MB` memory reserved outside of the JVM. If you have tiny {ml}
197
213
nodes in your cluster, you shouldn't use this setting.
214
+ ====
215
+ --
198
216
199
217
[discrete]
200
218
[[model-inference-circuit-breaker]]
201
219
==== {ml-cap} circuit breaker settings
202
220
203
221
`breaker.model_inference.limit`::
204
- (<<cluster-update-settings,Dynamic>>) Limit for the model inference breaker,
205
- which defaults to 50% of the JVM heap. If the parent circuit breaker is less
206
- than 50% of the JVM heap, it is bound to that limit instead. See
207
- <<circuit-breaker>> .
222
+ (<<cluster-update-settings,Dynamic>>) The limit for the trained model circuit
223
+ breaker. This value is defined as a percentage of the JVM heap. Defaults to
224
+ ` 50%`. If the <<parent-circuit-breaker,parent circuit breaker>> is set to a
225
+ value less than `50%`, this setting uses that value as its default instead .
208
226
209
227
`breaker.model_inference.overhead`::
210
- (<<cluster-update-settings,Dynamic>>) A constant that all accounting estimations
211
- are multiplied by to determine a final estimation. Defaults to 1 . See
212
- <<circuit-breaker>>.
228
+ (<<cluster-update-settings,Dynamic>>) A constant that all trained model
229
+ estimations are multiplied by to determine a final estimation. See
230
+ <<circuit-breaker>>. Defaults to `1`.
213
231
214
232
`breaker.model_inference.type`::
215
233
(<<static-cluster-setting,Static>>) The underlying type of the circuit breaker.
216
234
There are two valid options: `noop` and `memory`. `noop` means the circuit
217
235
breaker does nothing to prevent too much memory usage. `memory` means the
218
- circuit breaker tracks the memory used by inference models and can potentially
219
- break and prevent `OutOfMemory` errors. The default is `memory`.
236
+ circuit breaker tracks the memory used by trained models and can potentially
237
+ break and prevent `OutOfMemory` errors. The default value is `memory`.
0 commit comments