MST
星途 面试题库

面试题:ElasticSearch索引恢复配置:复杂场景处理

假设在一个大规模的ElasticSearch集群中,有部分索引因硬件故障需要恢复。集群资源有限,既要保证恢复速度,又要避免对在线业务产生过大影响。请阐述你会如何调整索引恢复相关配置以达到此目的,并说明每一项配置调整的依据。
50.6万 热度难度
数据库ElasticSearch

知识考点

AI 面试

面试题答案

一键面试
  1. 调整 indices.recovery.max_bytes_per_sec 配置
    • 调整方式:适当降低此配置值,例如从默认的 40mb 降低到 20mb 左右。
    • 依据:该配置限制了每个分片恢复时每秒传输的数据量。降低此值可以减少恢复过程中对网络带宽的占用,避免因恢复操作占用过多带宽而影响在线业务的搜索请求等操作。同时,适当的降低也能保证恢复在一定速度范围内进行,不至于过慢。
  2. 调整 cluster.routing.allocation.node_concurrent_recoveries 配置
    • 调整方式:减少该配置值,比如从默认的 2 调整为 1
    • 依据:此配置控制每个节点上并发恢复的分片数量。减少并发恢复的分片数量,可以降低单个节点在恢复过程中的资源消耗,包括CPU、内存和磁盘I/O等。这样可以避免因过多分片同时恢复导致节点资源紧张,影响在线业务在该节点上的正常运行。
  3. 调整 cluster.routing.allocation.total_shards_per_node 配置
    • 调整方式:根据集群节点的实际资源情况,合理分配每个节点上允许分配的分片总数。例如,如果某个节点资源相对充足,可以适当提高该节点的 total_shards_per_node 值,而对于资源紧张的节点则降低该值。
    • 依据:该配置决定了每个节点上允许分配的分片总数。通过合理分配,可以使恢复的分片均匀分布在集群节点上,避免某个节点因集中恢复过多分片而导致资源耗尽,影响在线业务。同时,也能利用各节点的资源,加快整体的恢复速度。
  4. 使用索引优先级
    • 调整方式:为重要的在线业务相关索引设置较高的优先级,而对于需要恢复的索引,如果不是紧急业务相关,可以设置较低的优先级。
    • 依据:ElasticSearch会优先处理高优先级索引的恢复等操作。通过设置优先级,可以保证在线业务索引的正常运行不受太大影响,同时让需要恢复的索引在资源允许的情况下逐步恢复。