milvus多个Querynode,资源消耗都打在一个节点上

embedded/2024/9/24 7:04:08/

milvus 查询时的原理
在这里插入图片描述
当读取数据时,MsgStream对象在以下场景中创建:

在 Milvus 中,数据必须先加载后才能读取。当代理收到数据加载请求时,会将请求发送给查询协调器,查询协调器决定如何将分片分配到不同的查询节点。分配信息(即 vchannels 的名称以及 vchannels 与其对应的 pchannels 之间的映射)通过方法调用或 RPC(远程过程调用)发送给查询节点。随后,查询节点会创建相应的 MsgStream 对象来消费数据。

问题的解决:
https://github.com/milvus-io/milvus/discussions/32698

具体为什么会产生这个问题,可以看我上一篇文章
https://blog.csdn.net/IT_Octopus/article/details/141605964?spm=1001.2014.3001.5501

考虑到大家网络可能不好截图出来:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述其中大致的内容都看懂了,比较困难的是

大致上是每个collection有一根数据管道,其中有一个querynode负责管理这根管道,我们称之为shard-leader,它从管道中接收来自pulsar的数据,数据积累在内存里,称为growing segment,当数据达到一定量,比如一百兆,就把这块数据落盘变成sealed segment,其他的querynode等加载sealed segment。
你插入的数据太少,大部分都在growing segment里,所以数据都在shard-leader里。如果你插入10GB的数据,你会发现其他的querynode也开始有数据。
看起来,你们应该有比较多的partition,每个partition都会有growing数据,而growing数据都会在shard delegator上。默认情况下只有一个delegator,因此大部分数据都在一台机器上。
2. 调小segment flush的阈值,使得数据更快flush,growing的数据更少。

这几句话,我个人理解一下哈:
动态的数据:
1.数据量太小,且数据是动态新增的,且没有60s间隔,没有达到segement分区的限制,没有从growingSegement态变成sealed态,所以都落在其中的一个segement。所以没有触发querynode分配。

       数据插入和 Growing Segment: 当新数据被插入 Milvus 时,它们首先被写入 Growing Segment。Growing Segment 是一个可以继续接收新数据的活跃段。Flush 操作和 Sealed Segment: Flush 操作会将 Growing Segment 中的数据持久化到存储中,并将 Growing Segment 转变为 Sealed Segment。Sealed Segment 是一个已关闭的段,不能再接收新的数据插入。3. Flush 阈值: Milvus 有一个阈值来决定何时自动执行 Flush 操作(60s)。这个阈值通常基于数据量或时间间隔

静态数据 or 封闭数据
“以分片为单位做balance” 这句话是我理解这个问题的核心点,
意思只有到达某个阈值的时候才会开启分配到其他queynode节点
在这里插入图片描述

通过上述搜索原理 和 官方回答的讨论可以得到这个结论
1.数据量不够,没有达到querynode 一个资源的限额。
在这里插入图片描述2.在数据量小的情况下,少querynode ,每个querynode 多资源
3.调整flush的阈值,我觉得在小数据量的情况下操作有点杀鸡用牛刀,完全可以使用命令塞入数据的指定多个副本,做负载…个人观点仅供参考哈


http://www.ppmy.cn/embedded/104431.html

相关文章

vue3+elementplus的表格展示和分页实战

文章目录 一、Element Plus的安装使用二、el-table 表格组件三、el-pagination 分页组件四、全部代码五、效果 Element Plus 是一个基于 Vue 3 的现代化 UI 组件库,旨在帮助开发者快速构建美观且功能丰富的 Web 应用程序。它提供了大量的 UI 组件,如按钮…

人工智能训练师工作内容及职业发展路径

人工智能训练师(AI Trainer)是一种专业职位,主要负责训练和优化人工智能系统,尤其是机器学习模型。他们的工作涉及到以下几个方面: 1、数据准备:训练师需要收集、清洗和预处理数据,以确保数据的…

JS学习笔记

文章目录 JS学习一、修改样式属性1、注意2、通过classList修改样式 二、获取表单里面的值三、定时器函数四、删除数组中选中的元素五、事件类型1、鼠标事件2、焦点时间3、键盘事件4、文本事件 六、document通过type获取七、获得焦点伪类选择器(focus)仅需…

【区块链 + 司法存证】印记区块链电子印章 | FISCO BCOS应用案例

电子印章作为传统物理印章的数字化锚定,除了拥有和物理印章一样的法律效力外,还能够有效地为企业增效降 本提质。近年来,随着国家双碳目标的提出以及全球新冠疫情,进一步加速了企业数字化转型的步伐,电子印章 的价值也…

C++之搜索二叉树(上)

目录 搜索二叉树的概念 搜索二叉树的操作 递归版本 二叉树的插入 二叉树的查找 二叉树的删除 非递归版本 二叉树的递归插入 二叉树的递归查找 二叉树的递归删除 在之前我们已经学习过了二叉树这一数据结构,本期我们将学习一种新的数据结构------搜索二…

【Faiss】构建高效搜索系统 - Faiss向量数据库的搭建

目录 ​编辑1. 引言 2. Faiss简介 3. 安装与配置 3.1 在不同操作系统上的安装方法 3.1.1 Windows 3.1.2 macOS 3.1.3 Linux 3.2 配置开发环境 3.2.1 使用virtualenv 3.2.2 使用Anaconda 1. 引言 在当今这个数据爆炸的时代,快速有效地处理海量数据已经成为…

高防服务器中的流量清洗是什么意思?

高防服务器能够为企业防御一定的网络攻击,是网络游戏行业经常会选择的一款服务器类型,其中高防服务器的流量清洗则是指对服务器所接收的流量进行实时监测、识别和过滤,将恶意流量与攻击流量进行清除,保证网络能够正常运行。 接下来…

前端知识HTMLCSS

目录 1. 前端开发介绍 1.1 认识前端开发 1.2 web标准 2. HTML & CSS 2.1 HTML快速入门 2.1.1 操作 2.1.2 总结 2.2 开发工具 2.3 基础标签 & 样式 2.3.1 标题实现 2.3.1.1 标题排版 2.3.1.1.1 分析 2.3.1.1.2 标签 2.3.1.1.2 实现 2.3.1.2 标题样式 2.…