前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Milvus Lite 已交卷!轻量版 Milvus,主打就是一个轻便、无负担

Milvus Lite 已交卷!轻量版 Milvus,主打就是一个轻便、无负担

作者头像
Zilliz RDS
发布于 2023-08-26 00:49:21
发布于 2023-08-26 00:49:21
75500
代码可运行
举报
运行总次数:0
代码可运行

想要体验世界上最快的向量数据库?缺少专业的工程师团队作为支撑?Milvus 安装环境受限?

别担心,轻量版 Milvus 来啦!

在正式介绍 Milvus Lite 之前,先简单回顾一下 Milvus。Milvus 是一款开源的向量数据库,专门用于索引、存储以及查询那些由深度神经网络和其他机器学习(ML)模型生成的向量,支持十亿级别的数据规模,已成为许多公司、研究人员和开发者处理大规模数据集相似性搜索的首选工具。

不过,也有用户反馈刚开始接触 Milvus 或者想要在 Notebook 中进行快速实验时,安装或部署 Milvus 有些力不从心 。为此,Milvus 社区的 Committer 嵇斌开发出 Milvus Lite,即 Milvus 的轻量级版本,方便有相关需求的用户进行体验。可以这样理解,Milvus Lite 为没有专业运维团队支撑、安装部署环境受限的群体提供了新的可能。

(https://github.com/milvus-io/milvus-lite)

01.

Milvus Lite 的优势

作为 Milvus 的轻量级版本,Milvus Lite 有不少优势,例如:

  • 可以轻松将 Milvus Lite 集成到 Python 应用程序中,不需要任何其他依赖项;
  • 可以作为 library 导入到其他 Python 程序中,并使用命令行接口(CLI);
  • 与 Google Colab 和 Jupyter Notebook 的集成变得更容易;
  • 安全迁移,应用程序代码和数据都可以丝滑地迁移到 Milvus集群或 Zilliz Cloud中。

02.

Milvus Lite 的适配场景

Milvus Lite 的典型使用场景:

  • 用户在使用 Milvus 的过程中不方便使用 K8s、容器等技术工具(例如 Milvus Operator,Helm 或 Docker Compose)时;
  • 想要将 Milvus 的功能集成到 Python 应用程序中;
  • 想在 Colab 或 Notebook 中进行快速实验时迅速启动 Milvus 实例。

03.

如何安装、部署和使用 Milvus Lite?

  • 准备工作

在正式安装 Milvus Lite 以前,需要做足以下准备:

  • 安装 Python 3.7 或更高版本。
  • 使用下述任何一个经过验证的操作系统:Ubuntu >= 20.04 (x86_64);CentOS >= 7.0 (x86_64);MacOS >= 11.0 (Apple Silicon)

值得注意的是,Milvus Lite 用 manylinux2014作为基础镜像,以便与 Linux 用户的大多数发行版兼容。

  • 安装 Milvus Lite
  • Milvus Lite 可以在 PyPI 中下载安装,我们可以通过 pip进行安装。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ python3 -m pip install milvus
  • 或者大家也可以通过 PyMilvus 进行安装,具体操作如下:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ python3 -m pip install milvus[client]
  • 使用并启动 Milvus Lite

从我们的项目库的示例文件夹中下载示例代码(https://github.com/milvus-io/milvus-lite/tree/main/examples)。有两种方式可以使用 Milvus Lite:将其作为 Python 库导入或用 CLI 在机器上将它作为独立服务器运行。

  • 将 Milvus Lite 作为 Python 模块启动,执行以下命令:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from milvus import default_server
from pymilvus import connections, utility

# Start your milvus server
default_server.start()

# Now you can connect with localhost and the given port
# Port is defined by default_server.listen_port
connections.connect(host='127.0.0.1', port=default_server.listen_port)

# Check if the server is ready.
print(utility.get_server_version())

# Stop your milvus server
default_server.stop()

大家也可以将 server 实例,放在 with语句的上下文中,以实现自动启停:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from milvus import default_server

with default_server:
  # Milvus Lite has already started, use default_server here.
  connections.connect(host='127.0.0.1', port=default_server.listen_port)
  • 通过 CLI 来启动 Milvus Lite,执行以下命令:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
milvus-server

启动 Milvus Lite 后,大家就可以使用 PyMilvus 或自己顺手的工具来连接独立服务器了。

  • 用调试模式启动 Milvus Lite
  • 将 Milvus Lite 作为 Python 模块以调试模式运行,执行以下命令:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from milvus import debug_server, MilvusServer

debug_server.run()

# Or you can create a MilvusServer by yourself
# server = MilvusServer(debug=True)
  • 在调试模式下运行 Milvus Lite,请执行以下命令:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
milvus-server --debug
  • 持久化数据和日志
  • 执行以下命令创建一个本地目录,用于存储所有相关的 Milvus Lite 数据和日志:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 from milvus import default_server

with default_server:
  default_server.set_base_dir('milvus_data')
  • 为了将 Milvus Lite 生成的所有数据和日志保存在本地磁盘上,执行以下命令:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 $ milvus-server --data milvus_data
  • 配置 Milvus Lite

配置 Milvus Lite 与使用 Python API 或 CLI 设置 Milvus 的实例相似。

  • 用 Python API 配置 Milvus Lite ,可以使用 MilvusServer实例的 config.set来设置基本和额外的设置:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from milvus import default_server

with default_server:
  default_server.config.set('system_Log_level', 'info')
  default_server.config.set('proxy_port', 19531)
  default_server.config.set('dataCoord.segment.maxSize', 1024)
  • 用 CLI 配置 Milvus Lite,运行以下命令进行基本设置:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ milvus-server --system-log-level info
$ milvus-server --proxy-port 19531
  • 或者,运行以下命令以进行额外配置:
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ milvus-server --extra-config dataCoord.segment.maxSize=1024

所有配置参数都在 Milvus 工具包中附带的 config.yaml模板中。想了解更多关于安装和配置 Milvus Lite 的技术细节,可以复制链接或点击【阅读原文】查看https://milvus.io/docs/milvus_lite.md#Prerequisites

04.

总结

总体而言,无论用户是何种身份(研究人员、开发者或者数据科学家),Milvus Lite 都是一个不错的选择,尤其对于那些想要在受限的环境中使用 Milvus 功能的用户而言,更是如此。

Milvus Lite 是开源社区或者说开源文化下的产物,背后折射出的是开发者们对于开源的热爱。在此,我们尤其要感谢 Milvus 社区 Committer 嵇斌,没有他就没有 Milvus Lite!我们也期待有更多开发者参与进来,和我们一起探讨 Milvus 的未来,在这个极具创新性与发展性的集市模式的加持下,Milvus 一定会变得越来越好,从而更好地满足用户的需求。

最后,如果大家在安装或使用 Milvus Lite 时遇到问题,可以复制链接提交问题,https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmilvus-io%2Fmilvus-lite%2Fissues%2Fnew

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-06-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ZILLIZ 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
生产环境Go程序内存泄露,用pprof如何快速定位
内存泄漏可以在整个系统中以多种形式出现,除了在写代码上的疏忽,忘了关闭该关闭的资源外,更多的时候导致系统发生内存泄露原因可能是设计上决策不对、或者业务逻辑上的疏忽没有考虑到一些边界条件。
KevinYan
2022/02/10
4.4K0
Golang使用pprof监控性能及GC调优
作者:峰云就她了 链接:http://xiaorui.cc/?p=3000 來源:个人博客 共 8809 字,阅读需 22 分钟 这两天用golang在写一个监控的agent,发现长时间运行后会有内存
李海彬
2018/07/26
4K0
Golang使用pprof监控性能及GC调优
【实践】使用Go pprof做内存性能分析
阿里云Redis线上在某些任务流中使用redis-port来进行实例之间的数据同步。redis-port是一个MIT协议的开源软件,主要原理是从源实例读取RDB快照文件、解析、然后在目标实例上应用灌数据的写命令。为了限制每个进程的最大内存使用,我们使用cgroup来做隔离,最近线上出现redis-port在同步数据时OOM的情况,最高内存使用达到了10G以上,而实际RDB的大小只有4.5GB左右。
辉哥
2019/08/18
22.3K0
golang pprof
当正在运行的golang程序消耗预期之外的内存和时间,我们这个时候就需要去弄明白,到底是是我们的代码哪个地方消耗了这些内存及相应时间。但此时编译好的golang程序对我们而言是黑盒,如果去分析具体的内存及时间使用情况?这个时候我们可以去了解和使用pprof来分析golang进程的内存使用。
yaohong
2021/12/16
1.1K0
golang pprof
golang定位内存泄露与cpu占用过高的方法与实战
现在使用golang的项目越来越多,但是当golang发生内存泄露或cpu占用过高时,怎么定位呢?其实很简单,按如下所述步骤操作即可:
shionyu
2018/08/30
17.5K0
golang定位内存泄露与cpu占用过高的方法与实战
听说你会内存分析?来,pprof一下
大家好,我是小❤,一个漂泊江湖多年的 985 非科班程序员,曾混迹于国企、互联网大厂和创业公司的后台开发攻城狮。
xin猿意码
2024/03/04
6290
听说你会内存分析?来,pprof一下
Go语言之性能分析工具pprof
pprof:是Go的性能分析工具,在程序运行过程中,可以记录程序的运行信息,可以是CPU使用情况、内存使用情况、goroutine运行情况等,Go语言已经将pprof 封装在包net/http/pprof中。
灰子学技术
2020/04/02
2.4K0
实战Go内存泄露
最近解决了我们项目中的一个内存泄露问题,事实再次证明pprof是一个好工具,但掌握好工具的正确用法,才能发挥好工具的威力,不然就算你手里有屠龙刀,也成不了天下第一,本文就是带你用pprof定位内存泄露问题。
大彬
2019/05/28
5.2K0
Go每日一库之90:gops
通常可以把Addr设置为要监听的IP,把ShutdownCleanup设置为ture,进程退出后,残留在ConfigDir目录的文件不再有用,最好清除掉。 ConfigDir示例:
luckpunk
2023/09/30
3730
从实例出发,深入理解pprof原理与应用
内存泄漏是指在计算机程序中,由于程序未能正确释放已经申请的内存空间,导致系统的可用内存持续减少,最终可能导致程序性能下降甚至崩溃的问题。
Michel_Rolle
2023/12/11
3K9
记一次golang内存泄露
最近在QA环境上验证功能时,发现机器特别卡,查看系统内存,发现可用(available)内存仅剩200多M,通过对进程耗用内存进行排序,发现有一个名为application-manager的容器服务的内存占用达到700多M,该服务使用Gin框架对外提供操作k8s资源的简单功能,解析客户端请求,并将结果返回给客户端。由于是测试环境,访问量极少,但内存一直只增不减,从最初的10M,一直增加到700多M,最终由于OOM而被重启(Pod)。
charlieroro
2021/06/02
1.5K0
Golang 大杀器之性能剖析 PProf
想要进行性能优化,首先瞩目在 Go 自身提供的工具链来作为分析依据,本文将带你学习、使用 Go 后花园,涉及如下:
前端教程
2018/10/25
2.4K0
Golang 大杀器之性能剖析 PProf
golang:快来抓住让我内存泄漏的“真凶”!
导语 | 有句话说得好:“golang10次内存泄漏,8次goroutine泄漏,1次真正内存泄漏”,那还有一次是什么呢?别急,下面就结合本次线上遇到的问题来讲一讲golang的内存泄漏和分析解决办法。 一、起——内存泄漏表现 在平常开发中golang的gc已经帮我们解决了很多问题了,甚至逐渐已经忘了有gc这种操作。但是在近期线上的一个trpc-go项目的表现实在让人匪夷所思,先让我们看看该患者的症状: 也是那么巧,每天晚上八点左右,服务的内存就开始暴涨,曲线骤降的地方都是手动重启服务才降下来的,内存
腾讯云开发者
2023/05/05
3.2K0
golang:快来抓住让我内存泄漏的“真凶”!
让你最快上手 go 的 pprof 性能分析大杀器
前言,发现一直没有记录过 pprof 分析的博客,其实在实际的业务场景中已经使用它很多次了,对于性能分析来说它真的是一大杀器,基本上有了它,80% 的性能问题都能被一目了然。每次出现性能问题,总是下面几个步骤,测试环境开 pprof,启动,流量重放,火焰图生成,一看,仔细分析一下,问题就浮于水面。
LinkinStar
2022/09/01
8670
让你最快上手 go 的 pprof 性能分析大杀器
Golang程序性能分析(一)pprof和go-torch
最近计划用三篇文章讲述一下Golang应用性能分析,本文是第一篇,先来介绍Go语言自带的性能分析库pprof怎么使用,后面两篇会讲解怎么用pprof对Echo或者Gin框架开发的应用进行性能分析以及如何使用pprof对gRPC 服务进行性能分析。
KevinYan
2020/11/26
1.2K1
自古以来,JSON序列化就是兵家必争之地
上文讲到使用ioutil.ReadAll读取大的Response Body,出现读取Body超时的问题。
有态度的马甲
2022/03/30
7500
自古以来,JSON序列化就是兵家必争之地
Golang pprof 性能问题分析优化和实战经验
Go 自带了一个 pprof 的性能优化和分析的工具,这个工具包括 cpuprof 、memprof ,并且还提供了 Lookup 功能用于获取堆状态信息、线程状态信息、 goroutine 状态信息等。官方的博客有一篇文章介绍用法:《Profiling Go Programs》[1]
Allen.Wu
2023/03/01
3K0
Golang pprof 性能问题分析优化和实战经验
go:如何定位内存cpu问题
此时,可以在web浏览器中输入http://localhost:6060/debug/pprof/,并点击进入 heap,查看信息。 重要的数据在下面:
超级大猪
2019/11/21
8590
Golang程序性能分析
程序性能分析我相信是每个程序员都会遇到的问题,比如说一个程序的CPU为什么占用这么高?有没有优化的空间?又比如程序出现了内存泄漏如何排查等等。如果是C++程序会借助于Google pprof c++ profile,java程序会依赖于jstack等工具,幸运的是Golang语言本身就集成了性能分析工具pprof包,可以有效的分析程序CPU,MEM,Metux等指标。其中还可以通过第三方图形应用来更加直观的显示每个调用关系和指标占用情况。
用户2937493
2019/09/11
2.1K0
Golang程序性能分析
【Go】优雅的读取http请求或响应的数据
从 http.Request.Body 或 http.Response.Body 中读取数据方法或许很多,标准库中大多数使用 ioutil.ReadAll 方法一次读取所有数据,如果是 json 格式的数据还可以使用 json.NewDecoder 从 io.Reader 创建一个解析器,假使使用 pprof 来分析程序总是会发现 bytes.makeSlice 分配了大量内存,且总是排行第一,今天就这个问题来说一下如何高效优雅的读取 http 中的数据。
thinkeridea
2019/11/04
4.3K0
【Go】优雅的读取http请求或响应的数据
相关推荐
生产环境Go程序内存泄露,用pprof如何快速定位
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验