当前位置: 首页 > 知识库问答 >
问题:

上超出了低磁盘水印[??%]

梁嘉澍
2023-03-14

我在我的开发机器(一个笔记本)中使用Elasticsearch 1.4.4。一切都设置为默认值,因为我从未更改任何设置。

当我启动它时,通常会收到以下信息:

[2015-10-27 09:38:31,588][INFO ][node                     ] [Milan] version[1.4.4], pid[33932], build[c88f77f/2015-02-19T13:05:36Z]
[2015-10-27 09:38:31,588][INFO ][node                     ] [Milan] initializing ...
[2015-10-27 09:38:31,592][INFO ][plugins                  ] [Milan] loaded [], sites []
[2015-10-27 09:38:34,665][INFO ][node                     ] [Milan] initialized
[2015-10-27 09:38:34,665][INFO ][node                     ] [Milan] starting ...
[2015-10-27 09:38:34,849][INFO ][transport                ] [Milan] bound_address {inet[/0:0:0:0:0:0:0:0:9300]}, publish_address {inet[/10.81.1.108:9300]}
[2015-10-27 09:38:35,022][INFO ][discovery                ] [Milan] elasticsearch/DZqnmWIZRpapZY_TPkkMBw
[2015-10-27 09:38:38,787][INFO ][cluster.service          ] [Milan] new_master [Milan][DZqnmWIZRpapZY_TPkkMBw][THINKANDACT1301][inet[/10.81.1.108:9300]], reason: zen-disco-join (elected_as_master)
[2015-10-27 09:38:38,908][INFO ][http                     ] [Milan] bound_address {inet[/0:0:0:0:0:0:0:0:9200]}, publish_address {inet[/10.81.1.108:9200]}
[2015-10-27 09:38:38,908][INFO ][node                     ] [Milan] started
[2015-10-27 09:38:39,220][INFO ][gateway                  ] [Milan] recovered [4] indices into cluster_state
[2015-10-27 09:39:08,801][INFO ][cluster.routing.allocation.decider] [Milan] low disk watermark [15%] exceeded on [DZqnmWIZRpapZY_TPkkMBw][Milan] free: 58.6gb[12.6%], replicas will not be assigned to this node
[2015-10-27 09:39:38,798][INFO ][cluster.routing.allocation.decider] [Milan] low disk watermark [15%] exceeded on [DZqnmWIZRpapZY_TPkkMBw][Milan] free: 58.6gb[12.6%], replicas will not be assigned to this node
[2015-10-27 09:40:08,801][INFO ][cluster.routing.allocation.decider] [Milan] low disk watermark [15%] exceeded on [DZqnmWIZRpapZY_TPkkMBw][Milan] free: 58.6gb[12.6%], replicas will not be assigned to this node
....

我看到很多这样的“低磁盘水印…超过了…”信息。我的案子出了什么问题?如何修复它?谢谢

使现代化

在这篇文章之前,我搜索了相关的帖子。我发现了一个与“高水位线”有关的在这种情况下,磁盘空间很小。在我的情况下,我检查了一下,我的磁盘上还剩下56GB。

使现代化

根据Andrei Stefan的输入,我需要更改设置。我应该按以下方式做:

curl -XPUT localhost:9200/_cluster/settings -d '{
    "transient" : {
        "cluster.routing.allocation.disk.threshold_enabled" : false
    }
}'

或者我可以编辑任何设置文件来设置它?

共有3个答案

阴迪
2023-03-14

就我而言,我只需关闭阈值:

运行ElasticSearch:

elasticsearch

在其他选项卡上运行:

curl -XPUT -H "Content-Type: application/json" http://localhost:9200/_cluster/settings -d '{ "transient": { "cluster.routing.allocation.disk.threshold_enabled": false } }'


curl -XPUT -H "Content-Type: application/json" http://localhost:9200/_all/_settings -d '{"index.blocks.read_only_allow_delete": null}'

macOS Catalina,通过Brew安装的ElasticSearch。

双志强
2023-03-14

我知道这是一个老帖子,但我的评论可以让人高兴。为了以字节值(gb或mb)指定水印,必须添加群集。路由。分配。磁盘水印。将搜索转移到elasticsearch设置文件-elasticsearch。yml。完整示例:

  cluster.routing.allocation.disk.threshold_enabled: true 
  cluster.routing.allocation.disk.watermark.flood_stage: 200mb
  cluster.routing.allocation.disk.watermark.low: 500mb 
  cluster.routing.allocation.disk.watermark.high: 300mb

注意:不指定集群。路由。分配。磁盘水印。flood_stage它不能与字节值(gb或mb)一起工作

郑功
2023-03-14

如果你和我一样有很多磁盘,你可以调整水印设置,使用字节值而不是百分比:

注意!您不能在这些设置中混合使用百分比值和字节值。要么全部设置为百分比值,要么全部设置为字节值。

设置:cluster。路由。分配。磁盘水印。低

控制磁盘使用的低水印。它默认为85%,这意味着一旦节点使用了超过85%的磁盘,ES将不会向节点分配新分片。它也可以设置为绝对字节值(如500mb),以防止ES在可用空间少于配置的空间量时分配分片。

设置:cluster.routing.allocation.disk.watermark.high

控制高水位线。它默认为90%,这意味着如果节点磁盘使用率上升到90%以上,ES将尝试将碎片重新定位到另一个节点。还可以将其设置为绝对字节值(类似于低水印),以便在节点上的可用空间小于配置的空间量时重新定位碎片。

设置:: cluster.routing.allocation.disk.watermark.flood_stage

控制泛洪阶段水印。默认值为95%,这意味着Elasticsearch在至少有一个磁盘超过泛洪阶段的节点上分配了一个或多个分片的每个索引上强制执行只读索引块(index.blocks.read_only_allow_delete)。这是防止节点耗尽磁盘空间的最后手段。一旦有足够的磁盘空间允许索引操作继续,索引块必须手动释放。

https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-cluster.html#disk-基于分片的分配

请注意:

百分比值指已用磁盘空间,字节值指可用磁盘空间。这可能令人困惑,因为它颠倒了高低的含义。例如,将低水位线设置为10gb,将高水位线设置为5gb是有意义的,但不是相反。

在我的5TB磁盘上,我设置了:

# /etc/elasticsearch/elasticsearch.yml
cluster.routing.allocation.disk.threshold_enabled: true
cluster.routing.allocation.disk.watermark.flood_stage: 5gb
cluster.routing.allocation.disk.watermark.low: 30gb
cluster.routing.allocation.disk.watermark.high: 20gb

编辑:添加了cluster.routing.allocation.disk.watermark.flood_stage作为pr其他答案。

 类似资料:
  • 问题内容: 我在开发机(单个笔记本)中使用Elasticsearch 1.4.4。一切都设置为默认设置,因为我从未更改任何设置。 启动它时,通常会收到以下消息: 我看到很多这样的“磁盘低水印…超出…”消息。我的情况出了什么问题?如何解决?谢谢! 更新 在这篇文章之前,我在SO中搜索了相关的文章。我发现一个与“高水印…”有关的情况,在这种情况下,磁盘空间不足。就我而言,我检查 了磁盘上是否还有56G

  • 问题内容: 尝试按正常方式将文档发布到Elasticsearch时,出现此错误: 我还在Elasticsearch日志上看到此消息: 问题答案: 当Elasticsearch认为磁盘空间不足,因此将其置于只读模式时,就会发生这种情况。 默认情况下,Elasticsearch的决定基于可用磁盘空间的 百分比 ,因此在大磁盘上,即使您有许多GB的可用空间,也可能发生这种情况。 泛洪阶段的水印默认为95

  • 问题内容: 我在本地计算机上使用elasticsearch。数据目录的大小只有37MB,但是当我查看日志时,可以看到: [2015-05-17 21:31:12,905] [WARN] [cluster.routing.allocation.decider] [Chrome]高磁盘水印在[h9P4UqnCR5SrXxwZKpQ2LQ]上超过了[10%] [Chrome]免费:5.7gb [6.1%

  • 问题内容: 编辑 -根据@opster elasticsearch ninja的评论,我编辑了原始问题,以使其专注于ES的低磁盘水印错误。 问题 :我注意到elasticsearch经常失败,需要手动重新启动服务器。 该问题可能与以下内容有关:即使索引中没有太多数据,也超出了磁盘高水位标记 我想更好地了解如果磁盘大小失败,elasticsearch会执行的操作,如何优化配置,然后才最终在系统出现故

  • 以下各节的脚本展示了如何监控磁盘和I/O活动。 统计磁盘读写状况 本节展示了如何找出磁盘读写最频繁的进程。 disktop.stp #!/usr/bin/env stap # # Copyright (C) 2007 Oracle Corp. # # Get the status of reading/writing disk every 5 seconds, # output top ten e

  • 问题内容: 一位同事提到他听说过一个轻量级的收藏集,当内容太满时会自动分页到磁盘上-但是他不记得这个名字了。我想它看起来像这样: 然后将x = 0推到x = 500到磁盘。关键是能够在不将整个内容加载到内存的情况下对其进行迭代。 这是针对具有少量内存的胖客户端。 有人知道吗(或类似的东西)? 问题答案: 好吧,我所知道的唯一具有这种功能的工具是流行系统:prevayler和space4j。尽管它们