本地英文版地址: ../en/ml-settings.html
你不需要为使用机器学习做任何设置。它默认就是启用的。
机器学习使用 SSE4.2 指令,因此只能在CPU 支持 SSE4.2 的机器上工作。
如果你这在老的硬件上运行 Elasticsearch,你必须禁用机器学习(通过设置xpack.ml.enabled
为 false
)。
所有这些设置都可以添加到elasticsearch.yml
配置文件中。动态设置还可以通过 集群更新设置 API来对整个集群进行更新。
动态设置优先于elasticsearch.yml
文件中的设置。
常规机器学习设置
-
node.ml
-
设置为
true
(默认) 以指定节点为一个机器学习节点。
如果在
elasticsearch.yml
中设置为false
,则该节点不能运行 作业(job)。 如果设置为true
,但是xpack.ml.enabled
设置为false
,则node.ml
设置会被忽略且节点不能运行 作业(job)。 如果你想运行 作业,集群中必须至少有一个机器学习节点。在专用协调节点或专用主节点上,禁用
node.ml
角色。 -
xpack.ml.enabled
-
设置为
true
(默认) 以启用节点的机器学习。如果设置为
false
,该节点的机器学习 API 会被禁用。 因此,该节点不能打开作业、启动数据源(datafeeds)或接收与机器学习 API 相关的传输(内部)通信请求。 如果节点是协调节点,来自客户端(包括 Kibana)的机器学习请求也会失败。 有关在特定的 Kibana 实例中禁用机器学习的更多信息,请参考 Kibana machine learning settings.如果要在集群中使用机器学习功能,建议在所有节点上将
xpack.ml.enabled
设置为true
。 这是默认行为。至少,它必须在所有符合主节点条件的节点上启用 如果您想在客户端或 Kibana 中使用机器学习功能,还必须在所有协调节点上启用它。 -
xpack.ml.inference_model.cache_size
-
允许的最大
推理(inference)
缓存大小。推理缓存存在于每个 预处理节点(ingest node) 上的JVM堆中。高速缓存为推理(inference)
处理器提供了更快的处理时间。 该值可以是静态字节大小的值(比如,“2gb”)或分配的堆的总大小的百分比。默认为“40%”。 -
xpack.ml.inference_model.time_to_live
-
推理模型缓存中模型的生存时间(TTL)。TTL 从上次访问开始计算。
推理(inference)
处理器试图从缓存中加载模型。 如果推理
处理器在 TTL 期间没有接收到任何文档,则被引用的模型被标记为从缓存中移除。 如果稍后有文档被处理,模型将再次加载到缓存中。默认为5m
。 -
xpack.ml.max_inference_processors
(动态) -
所有 预处理管道(ingest pipelines) 中允许的
推理
类型处理器的总数。 一旦达到限制,就不允许在管道中添加推理
处理器。默认为50
。 -
xpack.ml.max_machine_memory_percent
(动态) -
机器学习可用于运行分析过程的机器内存的最大百分比。(这些过程独立于 Elasticsearch JVM。) 默认为
30
%。 该限制基于机器的总内存,而不是当前的可用内存。 如果分配作业会导致机器学习作业的估计内存使用超过限制,则不会将作业分配给节点。 -
xpack.ml.max_model_memory_limit
(动态) -
可以为此节点上的任何作业设置的最大
model_memory_limit
属性值。 如果尝试使用大于此设置值的model_memory_limit
属性值创建作业,将会出现错误。 更新此设置时,现有作业不受影响。 更多关于model_memory_limit
属性的信息, 参考 `analysis_limits`。
-
xpack.ml.max_open_jobs
(动态) -
一个节点上可以同时运行的最大作业数。默认为
20
。 在这种情况下,任务包括异常检测任务和数据帧分析任务。 最大作业数量也受到内存使用的限制。 因此,如果作业的估计内存使用量高于允许值,则在一个节点上运行的作业会更少。 7.1 版之前,此设置是基于节点的非动态设置。 在 7.1 版中,它成为集群范围的动态设置。 因此,节点启动后对其值的更改只有在集群中的每个节点都运行 7.1 版或更高版本时才能使用。 最大允许值为512
。 -
xpack.ml.node_concurrent_job_allocations
(动态) -
每个节点上可以同时处于
opening
状态的最大作业数。 通常,作业在进入open
状态之前,会在此状态下停留一段时间。 在打开时必须恢复大型模型的作业会在opening
状态花费更多时间。默认为2
。
机器学习的高级设置
这些设置适用于高级用例;通常情况下默认值就够用了:
-
xpack.ml.enable_config_migration
(动态) - 保留的 (Reserved)。
-
xpack.ml.max_anomaly_records
(动态) -
每个 存储桶(bucket) 输出的最大记录数。默认值为
500
. -
xpack.ml.max_lazy_ml_nodes
(动态) -
延迟启动机器学习节点的数量。 在打开第一个机器学习作业之前不需要 ML 节点的情况下非常有用。 默认值为
0
,最可可接受的值为3
。 如果当前 ML 节点的数量>=
该设置,则认为不再有可用的延迟节点,因为已经提供了所需的节点数量。 当作业在此设置值为>0
的情况下打开,并且没有可以接受该作业的节点时,该作业将保持OPENING
状态,直到新的 ML 节点添加到集群,然后该作业会被分配在该节点上运行。该设置假设一些外部进程能够将 ML 节点添加到集群中。此设置仅在与此类外部进程结合使用时有用。
-
xpack.ml.process_connect_timeout
(动态) -
与 Elasticsearch JVM 分开运行的机器学习进程的连接超时时间。默认为
10s
。 一些机器学习运算是由独立于 Elasticsearch JVM 运行的进程完成的。 当这些进程启动时,它们必须连接到 Elasticsearch JVM。 如果此类进程未在此设置指定的时间内连接,则认为该进程已失败。 默认为10s
,此设置的最小值是5s
。