我在开发机(单个笔记本)中使用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
....
我看到很多这样的“磁盘低水印…超出…”消息。我的情况出了什么问题?如何解决?谢谢!
更新
在这篇文章之前,我在SO中搜索了相关的文章。我发现一个与“高水印…”有关的情况,在这种情况下,磁盘空间不足。就我而言,我检查
了磁盘上是否还有56GB。
更新
根据Andrei Stefan的输入,我需要更改设置。我应该通过以下方式做到这一点:
curl -XPUT localhost:9200/_cluster/settings -d '{
"transient" : {
"cluster.routing.allocation.disk.threshold_enabled" : false
}
}'
还是我可以编辑任何设置文件来设置它?
如果您喜欢我有很多磁盘,则可以调整水印设置并使用字节值而不是百分比:
注意!您不能在这些设置中混合使用百分比值和字节值。要么全部设置为百分比值,要么全部设置为字节值。
设置 :cluster.routing.allocation.disk.watermark.low
控制磁盘使用率的低水位线。它默认为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/zh-CN/elasticsearch/reference/current/disk-
allocator.html
请注意:
百分比值是指已使用的磁盘空间,而字节值是指可用磁盘空间。这可能会造成混淆,因为它颠倒了高和低的含义。例如,将低水印设置为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
为其他答案。
我在我的开发机器(一个笔记本)中使用Elasticsearch 1.4.4。一切都设置为默认值,因为我从未更改任何设置。 当我启动它时,通常会收到以下信息: 我看到很多这样的“低磁盘水印…超过了…”信息。我的案子出了什么问题?如何修复它?谢谢 使现代化 在这篇文章之前,我搜索了相关的帖子。我发现了一个与“高水位线”有关的在这种情况下,磁盘空间很小。在我的情况下,我检查了一下,我的磁盘上还剩下56G
问题内容: 尝试按正常方式将文档发布到Elasticsearch时,出现此错误: 我还在Elasticsearch日志上看到此消息: 问题答案: 当Elasticsearch认为磁盘空间不足,因此将其置于只读模式时,就会发生这种情况。 默认情况下,Elasticsearch的决定基于可用磁盘空间的 百分比 ,因此在大磁盘上,即使您有许多GB的可用空间,也可能发生这种情况。 泛洪阶段的水印默认为95
问题内容: 我正在使用Netty4。我看到Netty服务器的以下选项:WRITE_BUFFER_HIGH_WATER_MARK和WRITE_BUFFER_LOW_WATER_MARK。 官方页面“ 相关文章”链接到Norman Maurer的Netty最佳实践(带有视频的幻灯片) 。其中一张幻灯片如下所示: 并具有以下序言: 设置健全的WRITE_BUFFER_HIGH_WATER_MARK和
问题内容: 编辑 -根据@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
当尝试像往常一样将文档发布到Elasticsearch时,我遇到了以下错误: 我在Elasticsearch日志中也看到了这条消息: