当前位置:   article > 正文

window部署安装milvus的坑(etcd也有)_window milvus

window milvus

问题之始

有个springboot项目需要做人脸搜索的功能,mysql数据库没办法做向量检索的操作,只能使用向量数据库了,大概看了一下决定使用milvus,从而开启了一段坑坑洼洼的迷途之旅。

问题1:

作为一个资深码农(自称☺),开始网上找教程安装部署milvus,找了一大轮都是使用Docker部署的方法(也是milvus官方文档推荐),自己按照milvus官方的办法先是在我的开发电脑安装了Docker(因为虚拟化的问题也遇到不少坑,这个可以自行搜索解决),然后安装milvus的过程也很顺利,用attu可以成功登录进去了。但问题是项目是部署在云服务器上的,云服务器本身就是虚拟机,咨询了相关服务商后被告知无法二次虚拟化,连Docker都跑不起来,只能另谋蹊径。

解决过程:

既然用不了Docker进行部署,那可不可以直接绕过Docker,直接在window系统进行部署milvus呢?经过一段时间的网络冲浪,终于找到了办法:window版milvus,这个是window版的milvus,在:milvus/releases下载最新版本,按照文档:在 Windows 上运行 Milvus 2.0的方法终于成功在云服务器上成功启动了milvus!以下是文档的中文翻译截图
文档的中文翻译截图

问题2:

项目在生产跑的时候一天会产生几千的人脸信息写入milvus,过了一段时间之后发现milvus崩掉了,从报错信息上看是etcd出现了问题 Error: etcdserver: mvcc: database space exceeded,又是一通网络冲浪,查出来大概就是说,默认情况下,etcd 会保留所有数据的修改历史记录,直到数据量超过空间配额而无法提供服务为止,然后默认的分配空间是2g,需要处理一下。

解决过程:

和老朋友度娘和谷兄玩了一会后,找到的信息都是以下这种处理方式:

#使用API3
export ETCDCTL_API=3
#查看告警信息,告警信息通常 memberID:8630161756594109333 alarm:NOSPACE
etcdctl --endpoints=http://127.0.0.1:2379 alarm list
#获取当前版本
rev=$(etcdctl --endpoints=http://127.0.0.1:2379 endpoint status --write-out=“json” | egrep -o ‘“revision”:[0-9]’ | egrep -o '[0-9].’)
#压缩掉全部旧版本
etcdctl --endpoints=http://127.0.0.1:2379 compact $rev
#整理多余的空间
etcdctl --endpoints=http://127.0.0.1:2379 defrag
#取消告警信息
etcdctl --endpoints=http://127.0.0.1:2379 alarm disarm

这应该是linux的代码与我们window的环境不符,然后etcdctl这个工具在window版的milvus中也没有,只能去etcd下载了,我下载的是etcd-v3.5.11-windows-amd64版本,cd进入etcdctl.exe的目录,试了下可以用,下面是解决问题的操作步骤:

  1. 输入命令etcdctl endpoint status --write-out="table"在这里插入图片描述DB SIZE显示的容量超过2g(默认的)就会报错用不了,我这里是正常的,其中RAFT INDEX显示的值,其实就是revision的值,这个值在etcd每次写入操作的时候都会增大。
  2. 然后运行etcdctl compact %revision%
    这里的%revision%用你刚刚查出来的RAFT INDEX的值代替,比如这里我应该输入etcdctl compact 31873
  3. 接着运行etcdctl defrag清理磁盘碎片
  4. 最后运行etcdctl alarm disarm清除警告
    然后重新启动run_etcd.bat即可

ps:网上还有很多设置自动压缩的教程,但是我配置之后过段时间还是会爆空间,后面的办法是创建一个window定时任务,每天定时运行清理一下,后面再出一篇详细说明下。

2024-01-19补充

如果etcd爆了,这个配置亲测可以生效 (生效个屁,见2024-01-23补充)

  1. 先在这个目录找到这个文件在这里插入图片描述
  2. 然后加上auto-compaction-mode: revisionauto-compaction-retention: 1000,上面那个注释掉的配置试了好像没什么用,注释了。
    在这里插入图片描述

2024-01-19补充

爆了,还是爆了(

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/487334
推荐阅读
相关标签