使用 Elasticsearch 遇到的一些问题

使用 Elasticsearch 遇到的一些问题

黄色分片问题

集群变为黄色,显示 “无法获取内存中分片锁” 错误消息。

原文:https://aws.amazon.com/cn/premiumsupport/knowledge-center/es-in-memory-shard-lock/

要解决错误消息,请尝试以下方法

  • 排查您的黄色群集状态。
  • 增加最大重试设置。
  • 更新副本数量(负载高时,不建议使用)。

操作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// 查看哪些索引导致集群进入黄色状态
GET /_cat/indices?v&health=yellow

// 查询来识别集群未分配分片的根本原因
GET /_cluster/allocation/explain

// 增加最大重试设置 (默认5)
PUT /info/_settings
{
"index.allocation.max_retries" : 10
}

// 要更改副本数量
// 1. 删除所有副本,使受影响的索引数量变为 0:
PUT /info/_settings
{
"index" : {
"number_of_replicas" : 0
}
}
// 2. 将副本数量更改回所需的数量
PUT /info/_settings
{
"index" : {
"number_of_replicas" : 1
}
}

进行上述操作后,问题并没有得到解决。后来系统占用小了(主要是内存降下来),就没有发现没有黄色分片了。

磁盘使用率过高,无法创建副本

我 es 集群中有一台电脑磁盘占用90%(3T),该节点上的所有分片都变成了灰色,使用以下方案解决了该问题。

临时修改

1
2
3
4
5
6
7
8
PUT _cluster/settings
{
"transient": {
"cluster.routing.allocation.disk.watermark.low": "150gb",
"cluster.routing.allocation.disk.watermark.high": "100gb",
"cluster.info.update.interval": "1m"
}
}

永久有效

修改 es 配置文件 elasticsearch.yml

1
2
3
cluster.routing.allocation.disk.threshold_enabled: true
cluster.routing.allocation.disk.watermark.low: 150gb
cluster.routing.allocation.disk.watermark.high: 100gb

 

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×