向量数据库Milvus住宅服务器搭建

住宅服务器搭建向量数据库Milvus完整实操教程

如果你正在寻找一个能在自己家里服务器上运行的向量数据库,Milvus 是一个非常主流的选择。
它主要用来存储和搜索非结构化数据的向量表示,比如图像特征、文本嵌入等。
本文会手把手带你在住宅环境中完成 Milvus 的部署,确保每一步都能落地。

家庭服务器也能跑 Milvus?先看硬件门槛

Milvus 分为 Standalone(单机)和 Cluster(集群)模式。
对于住宅服务器,建议使用 Standalone 模式,资源占用相对较低。

  • 内存:官方推荐至少 8GB 可用内存(含系统)。如果数据量不大(百万级向量以内),8GB 可以跑起来。
  • CPU:2 核以上即可,建议 4 核。
  • 磁盘:20GB 以上空余空间,SSD 更佳。
  • 操作系统:Ubuntu 20.04/22.04 或 CentOS 7/8,本文以 Ubuntu 22.04 为例。
  • Docker 和 Docker Compose:必须安装。

如果你的服务器配置较低,可以在启动时通过环境变量调整内存占用(后面会讲)。

第一步:安装 Docker 与 Docker Compose

Milvus 官方推荐用 Docker Compose 部署。
还没装 Docker 的同学,先执行以下命令:

# 更新包索引
sudo apt update && sudo apt upgrade -y

# 安装 Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

# 将当前用户添加到 docker 组(避免每次都要 sudo)
sudo usermod -aG docker $USER
newgrp docker

# 验证 Docker 是否正常
docker --version

接着安装 Docker Compose(如果系统已带 docker compose 插件可跳过):

# 下载最新版 Compose(v2 版本)
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version

第二步:用 Docker Compose 一键部署 Milvus Standalone

  1. 创建一个工作目录并进入:
mkdir ~/milvus && cd ~/milvus
  1. 下载 Milvus 官方提供的 standalone 版 docker-compose.yml:
wget https://raw.githubusercontent.com/milvus-io/milvus/master/deployments/docker-compose-standalone.yml
  1. 启动容器:
docker-compose up -d
  1. 检查容器是否全部启动:
docker-compose ps

正常情况下可以看到三个容器:etcdminiostandalone(milvus 本体),状态都是 Up

  1. 查看运行日志确认无报错:
docker-compose logs -f standalone

看到类似 milvus is ready 的日志就说明部署成功。

第三步:调整资源配置让 Milvus 更流畅(避坑重点)

住宅服务器通常内存不充裕,默认配置可能占用过高。
你可以修改 docker-compose-standalone.yml 中的 standalone 服务环境变量:

environment:
  - "CACHE_SIZE=512"  # 缓存大小,单位MB,默认很高,降低到512
  - "QUERY_NQ_QUEUE_SIZE=4"

也可以在启动前修改 minio 的内存限制:在 minio 服务下添加 mem_limit: 2g 等。

更简单的方法是在 docker-compose up -d 之前,编辑 yml 文件,在 standalone 服务的 deploy 字段中加入:

deploy:
  resources:
    limits:
      memory: 4g
    reservations:
      memory: 2g

然后重新启动:

docker-compose down
docker-compose up -d

这样 Milvus 进程最多使用 4GB 内存,保留给系统和其他应用。

第四步:新手最容易踩的坑汇总

  • 端口冲突:Milvus 默认占用 19530(gRPC)和 9091(HTTP)。如果这些端口已被占用,可以在 docker-compose-standalone.yml 中修改 ports 映射,比如改成 19531:19530
  • 内存不足导致容器退出:如果启动后容器不断重启,先查看日志 docker-compose logs standalone,常见错误是 Out of memory。按上一步降低内存限制或给服务器加 swap。
  • 系统时间不同步:Milvus 依赖时间戳,如果服务器时间偏差大可能导致数据异常。建议安装 ntp 同步时间。
  • 防火墙拦截:如果你需要从其他设备连接 Milvus,记得开放对应端口(19530)。

第五步:连上 Milvus 验证数据读写

在本地(或另一台机器)安装 Python 库 pymilvus,然后尝试连接并插入/搜索向量。

pip install pymilvus

创建测试脚本 test_milvus.py

from pymilvus import connections, Collection, FieldSchema, CollectionSchema, DataType, utility

# 连接 Milvus(默认地址 localhost:19530)
connections.connect(host='localhost', port='19530')

# 创建集合
fields = [
    FieldSchema(name='id', dtype=DataType.INT64, is_primary=True),
    FieldSchema(name='embedding', dtype=DataType.FLOAT_VECTOR, dim=128)
]
schema = CollectionSchema(fields, description='test collection')
collection = Collection(name='test_collection', schema=schema)

# 插入 10 条随机向量
import random
import numpy as np
vectors = [[random.random() for _ in range(128)] for _ in range(10)]
ids = list(range(10))
collection.insert([ids, vectors])

# 创建索引(可选)
index_params = {
    'metric_type': 'L2',
    'index_type': 'IVF_FLAT',
    'params': {'nlist': 128}
}
collection.create_index(field_name='embedding', index_params=index_params)

# 搜索
collection.load()
search_vector = [random.random() for _ in range(128)]
results = collection.search(data=[search_vector], anns_field='embedding', param={'metric_type': 'L2', 'params': {'nprobe': 10}}, limit=3)
print('搜索结果 IDs:', results[0].ids)

运行:

python test_milvus.py

如果没有报错并打印出 IDs,说明整个 Milvus 服务已搭建成功,可以投入使用了。

结语

本文从零开始,带你在住宅服务器上完成了 Milvus 的搭建、配置和验证。
建议初次使用先按官方默认配置运行,熟悉后再根据内存和性能需求调整参数。
如果你遇到其他奇怪的问题,可以回看避坑部分或查阅 Milvus 官方文档,大部分问题都已有解决方案。

分享到:
上一篇
新手也能搞定:GPT4o接口聚合中转网关搭建教程
下一篇
RAG私有知识库跨境站集成:跨境网站接入RAG私有知识库
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意