即使我的索引中的数据不多,也会超出高磁盘水印

时间:2015-05-17 16:09:31

标签: elasticsearch

我在本地计算机上使用elasticsearch。数据目录的大小只有37MB,但当我检查日志时,我可以看到:

  

[2015-05-17 21:31:12,905] [警告] [cluster]:[Chrome]导致[Chrome]高磁盘水印[10%]超过[h9P4UqnCR5SrXxwZKpQ2LQ] [Chrome]免费:5.7gb [ 6.1%],分片将从此节点重新定位

对可能出现的问题感到困惑。有什么帮助吗?

6 个答案:

答案 0 :(得分:26)

来自Index Shard Allocation

  

... watermark.high控制高水印。它默认为90%,这意味着如果节点磁盘使用率超过90%,ES将尝试将分片重新定位到另一个节点。

实际指数的大小无关紧要;它是设备上留下的自由空间。

如果默认值不适合您,您需要更改它们。

答案 1 :(得分:5)

要解决此问题,日志记录为:

  

超出高磁盘水印[90%]   [ytI5oTyYSsCVfrB6CWFL1g] [ytI5oTy] [在/ var / lib中/ elasticsearch /节点/ 0]   free:552.2mb [4.3%],碎片将从此节点重新定位

您可以通过执行以下curl请求来更新阈值限制:

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

答案 2 :(得分:3)

它是一个警告,不会影响任何事情。存储处理器(SP)使用高水位和低水位来确定何时刷新其写入缓存。 可能的解决方案是释放一些内存

警告将消失。即使显示,副本也不会分配给可以接受的节点。弹性搜索将正常工作。

答案 3 :(得分:2)

Elasticsearch 6.4 docs中经过稍微修改的curl命令对我有用:

curl -X PUT "localhost:9200/_cluster/settings" -H 'Content-Type: application/json' -d'
{
  "transient": {
    "cluster.routing.allocation.disk.watermark.low": "2gb",
    "cluster.routing.allocation.disk.watermark.high": "1gb",
    "cluster.routing.allocation.disk.watermark.flood_stage": "500mb",
    "cluster.info.update.interval": "1m"
  }
}
'

如果curl -XPUT命令成功,那么您应该在Elasticsearch终端窗口中看到如下日志:

[2018-08-24T07:16:05,584][INFO ][o.e.c.s.ClusterSettings  ] [bhjM1bz] updating [cluster.routing.allocation.disk.watermark.low] from [85%] to [2gb]
[2018-08-24T07:16:05,585][INFO ][o.e.c.s.ClusterSettings  ] [bhjM1bz] updating [cluster.routing.allocation.disk.watermark.high] from [90%] to [1gb]
[2018-08-24T07:16:05,585][INFO ][o.e.c.s.ClusterSettings  ] [bhjM1bz] updating [cluster.routing.allocation.disk.watermark.flood_stage] from [95%] to [500mb]
[2018-08-24T07:16:05,585][INFO ][o.e.c.s.ClusterSettings  ] [bhjM1bz] updating [cluster.info.update.interval] from [30s] to [1m]

https://www.elastic.co/guide/en/elasticsearch/reference/current/disk-allocator.html

答案 4 :(得分:1)

我使用绝对值和上升值代替百分比,以更好地利用空间(在生产前):

PUT _cluster/settings
{
  "persistent": {
    "cluster.routing.allocation.disk.threshold_enabled": true,
    "cluster.routing.allocation.disk.watermark.low": "1g",
    "cluster.routing.allocation.disk.watermark.high": "500m",
    "cluster.info.update.interval": "5m" 
  }
}

我还缩短了缓冲间隔,以缩短ES日志))

答案 5 :(得分:1)

清理硬盘驱动器上的一些空间。那应该解决问题。这还将使您的ES群集的运行状况从黄色更改为绿色(如果遇到上述问题,您也很可能会遇到黄色群集的运行状况)。