在索引中数据不多的情况下,磁盘高水位超标



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

[2015-05-17 21:31:12,905][WARN][cluster.routing.allocation.decider] [Chrome] high disk watermark [10%] exceeded on [h9P4UqnCR5SrXxwZKpQ2LQ][Chrome] free: 5.7gb[6.1%], shards将从该节点重新定位

不知道哪里出了问题。任何帮助吗?

From Index Shard Allocation:

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

实际索引的大小并不重要;重要的是设备上剩余的可用空间。

如果默认值不适合您,您必须更改它们

解决以下问题,日志记录为:

硬盘高水位[90%]已超过on[ytI5oTyYSsCVfrB6CWFL1g] [ytI5oTy] [/var/lib/elasticsearch/节点/0]空闲:552.2mb[4.3%],分片将从该节点重新定位

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

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

这个稍微修改过的curl命令来自Elasticsearch 6.4文档:

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

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

,警告将消失。即使显示了它,副本也不会分配给节点,这是可以的。

为了更好地利用空间,我使用绝对值和上升值来代替百分比:

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日志更短))

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

最新更新