Easysearch 节点磁盘不足应对方法

news/2025/3/15 1:24:44/文章来源:https://www.cnblogs.com/infinilabs/p/18771224

Easyearch 为了防止索引将磁盘空间完全占满,使用磁盘水位线进行磁盘空间控制。之前有文章提过不同水位线的作用,以及如何使用 INFINI Console 提前进行告警,提前进行处理。本篇主要探讨提前处理的情况。

一、增加资源

如果资源充裕,可考虑为 Easysearch 集群扩充资源:

  1. 添加新的数据节点

扩充节点后,集群会自动进行数据平衡,可用下面的命令查看进度

GET /_cat/shards?v&h=state,node&s=state

如果响应中分片的状态是 RELOCATING ,则表示分片仍在移动。

  1. 扩充现有数据节点磁盘容量

扩充完后可查看磁盘利用率下降情况

GET _cat/allocation?v&s=disk.avail&h=node,disk.percent,disk.avail,disk.total,disk.used,disk.indices,shards

二、释放磁盘空间

如果无资源可添加,则考虑减少磁盘消耗:

  1. 删除无用索引

建议使用索引生命周期进行管理,自动删除过期索引。

  1. 删除多余副本

有些业务索引可能会有多分副本,可酌情缩减副本数,降低磁盘消耗。以下命令按副本数量和主存储大小的降序排列索引。

GET _cat/indices?v&s=rep:desc,pri.store.size:desc&h=health,index,pri,rep,store.size,pri.store.size
  1. 可搜索快照

对于有些数据平时不常用,但需要长期保留的,建议使用可搜索快照功能降低磁盘消耗。

三、索引空间优化

  1. 启用 ZSTD 压缩及 source_reuse 功能

Easysearch 支持 ZSTD 和 source_reuse 功能,对比默认的压缩算法,可大幅降低磁盘消耗。

可在创建索引时启用 ZSTD 和 source_reuse 功能,也可通过索引模板来进行设置,参考文档。

PUT test-index
{"settings": {"index.codec": "ZSTD","index.source_reuse": "true"}
}

⚠️ 注意:当索引里包含 nested 类型映射,或插件额外提供的数据类型时,不能启用 source_reuse,例如 knn 索引。

  1. 索引优化
  • mapping 优化
    避免使用默认的 mapping 类型,因为字符串类型的数据将得到 text 和 keyword 两个类型的 mapping。
  • 字段优化
    统计指定索引每个字段的访问次数。
GET metrics/_field_usage_stats

分析指定索引各个字段占用磁盘的大小。

POST metrics/_disk_usage?run_expensive_tasks=true

结合以上信息进一步优化各个字段,如关闭不用的功能等

  1. 使用 rollup 功能

对于时序场景类的数据,往往会有大量的非常详细的聚合指标,随着时间的图推移,存储将持续增长。汇总功能可以将旧的、细粒度的数据汇总为粗粒度格式以进行长期存储。通过将数据汇总到一个单一的文档中,可以大大降低历史数据的存储成本。

Easysearch 的 rollup 具备一些独特的优势,可以自动对 rollup 索引进行滚动而不用依赖其他 API 去单独设置,并且在进行聚合查询时支持直接搜索原始索引,做到了对业务端的搜索代码完全兼容,从而对用户无感知。

官网文档:https://infinilabs.cn/docs/latest/easysearch

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/898409.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matplotlib常用方法

目录安装库创建图画流程1. 创建画板2. 创建一个个在画板上的图形轴3. 开始在图上进行画画线图plot散点图scatter条形图bar、barh直方图hist饼图pie 安装库 pip install matplotlib创建图画流程 1. 创建画板 在任何绘图之前,我们需要一个Figure对象,可以理解成我们需要一张画板…

编译原理第三次作业

3.3.5(1) 正则表达式: define) other -> {bcdfghjklmnpqrstvwxyz} answer:other* a(other|a)* e(other|e)* i(other|i)* o(other|o)* u(other|u)* NFA: (由python代码生成,除了这个下面的DFA是基于开源工具绘制的)from graphviz import Digraphdef create_nfa():nfa = Digr…

第十二课 问答

这堂课的重点是谈一谈阅读理解(Reading Comprehension)解释一下两个例子信息提取:假设现在我们想要做一个关于奥巴马的背景信息提取,如图所示,我们现在想要知道奥巴马在哪里受的教育,我们将其转换成奥巴马在哪里毕业,然后进行阅读理解就好了 语义角色标注:假设现在我们…

Spring Task学习 -2025/3/13

Spring Task只要是需要定时处理的场景都可以使用Spring Task Cron 表达式cron在线表达式生成器 Spring Task 使用步骤示例

Rhino 8.12 下载与安装

Rhinoceros (Rhino) 是一款功能强大的 3D 建模软件,广泛应用于建筑设计、产品设计、工程分析、动画和插图等领域。Rhino 的建模主要基于曲线网络的构建,通过在空间中创建曲线网络并将其转换为曲面,用户可以实现高精度的 3D 模型设计。 1、安装包 扫描下方二维码关注「软知社…

.net微信支付接入

1.申请微信商户号 2.申请服务号 3.在商户号中接通服务号并且申请native支付 4.申请证书、密钥 5.nuget上安装“SKIT.FlurlHttpClient.Wechat.TenpayV3”包 6.发布到服务器时务必在应用程序池 - 应用程序 - 高级设置 - 加载用户配置文件 设置未true!!!!!否则会遇到下面的B…

HarmonyOS NEXT 实战系列01-ArkTS基础

​ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展,保持了TS的基本风格,同时通过规范定义强化开发期静态检查和分析,提升程序执行稳定性和性能。 ArkTS提供了声明式UI范式、状态管理、渲染控制等相应的能力,让开…

WebGame - 免费在线游戏,畅玩不停!

在快节奏的现代生活中,休闲娱乐成为了人们缓解压力的重要方式。无论是上班族、学生,还是游戏爱好者,大家都希望能够随时随地玩到好玩的游戏,而 WebGame(https://www.webgame.one/)正是这样一个理想的平台!WebGame - 免费在线游戏,畅玩不停! 在快节奏的现代生活中,休闲…

springboot的mapper层的小问题

①如果sql语句如上,在进行苍穹外卖的分类查询时,不会报错,对应的sql语句是 ②如果sql语句如下 对应的sql语句为 对于上面的情况,我觉得是系统前端的问题,因为在第二种情况下,可以进行状态的启用,但是进行状态的禁用时,其对应的status为空

SpringCloud学习笔记(1)

SpringCloud学习笔记(1)之前我们学习的项目一是单体项目,可以满足小型项目或传统项目的开发。而在互联网时代,越来越多的一线互联网公司都在使用微服务技术。 从谷歌搜索指数来看,国内从自2016年底开始,微服务热度突然暴涨:那么:到底什么是微服务? 企业该不该引入微服务…

SpringCloud学习笔记(2)

SpringCloud学习笔记(2)1.网关路由 1.1.认识网关 什么是网关? 顾明思议,网关就是网络的关口。数据在网络间传输,从一个网络传输到另一网络时就需要经过网关来做数据的路由****和转发以及数据安全的校验。 更通俗的来讲,网关就像是以前园区传达室的大爷。外面的人要想进入园…

2025年Postman的五大替代工具

虽然Postman是一个广泛使用的API测试工具,但许多用户在使用过程中会遇到各种限制和不便。因此,可能需要探索替代解决方案。本文介绍了10款强大的替代工具,它们能够有效替代Postman,成为你API测试工具箱的一部分。 什么是Postman?Postman是开发人员和测试工程师用来测试API…