目录
安装、启动 Milvus 服务
安装前提
操作系统
硬件
软件
确认 Docker 状态
拉取 Milvus 镜像
下载并修改配置文件
启动 Milvus Docker 容器
常见问题
接下来你可以
安装、启动 Milvus 服务
CPU 版 Milvus GPU 版 Milvus
安装前提
操作系统
操作系统 | 版本 |
CentOS | 7.5 或以上 |
Ubuntu LTS | 18.04 或以上 |
硬件
硬件 | 建议配置 |
CPU | Intel CPU Sandy Bridge 或以上 |
CPU 指令集 |
|
GPU | NVIDIA Pascal 或以上 |
内存 | 8 GB 或以上(取决于具体向量数据规模) |
硬盘 | SATA 3.0 SSD 或以上 |
软件
软件 | 版本 |
Docker | 19.03 或以上 |
NVIDIA Driver | 418 或以上 |
NVIDIA Container Toolkit | NVIDIA-Container-Toolkit |
确认 Docker 状态
确认 Docker daemon 正在运行:
$ sudo docker info
- 如果无法正常打印 Docker 相关信息,请启动 Docker daemon。
- 在 Linux 上需要使用 sudo 执行 Docker 命令。若要在没有 sudo 的情况下运行 Docker 命令,请创建 docker 组并添加用户,详见 Linux 安装步骤。
拉取 Milvus 镜像
拉取支持 GPU 的镜像:
$ sudo docker pull milvusdb/milvus:1.1.0-gpu-d050721-5e559c
- 如果你的主机由于网络限制无法在线获得 Docker 镜像和配置文件,请从其他主机在线获取镜像,保存为 TAR 文件传输回本地,传输完成后重新加载为 Docker 镜像:点击查看离线传输相关代码示例。
- 如果拉取镜像的速度过慢或一直失败,请参考 部署运维问题 中提供的解决办法。
下载并修改配置文件
$ mkdir -p /home/$USER/milvus/conf $ cd /home/$USER/milvus/conf $ wget http://raw.githubusercontent.com/milvus-io/milvus/v1.1.0/core/conf/demo/server_config.yaml
如果无法通过 wget 命令正常下载,你也可以在 /home/$USER/milvus/conf 目录下创建 server_config.yaml 文件,然后将 server config 文件 的内容复制到你创建的配置文件中。
配置文件下载完成后,你需要将 server_config.yaml 中的 gpu 区域的 enable 参数设置为 true。
启动 Milvus Docker 容器
启动 Docker 容器之前,你必须将 server_config.yaml 中 gpu 部分的 enable 设为 true。
启动 Docker 容器,将本地的文件路径映射到容器中:
$ sudo docker run -d --name milvus_gpu_1.1.0 --gpus all \ -p 19530:19530 \ -p 19121:19121 \ -v /home/$USER/milvus/db:/var/lib/milvus/db \ -v /home/$USER/milvus/conf:/var/lib/milvus/conf \ -v /home/$USER/milvus/logs:/var/lib/milvus/logs \ -v /home/$USER/milvus/wal:/var/lib/milvus/wal \ milvusdb/milvus:1.1.0-gpu-d050721-5e559c
上述命令中用到的参数定义如下:
- -d: 在后台运行容器。
- --name: 为容器指定一个名字。
- --gpus: 指定可用的 GPU。如填写 all 则表示所有 GPU 均可用。
- -p: 指定端口映射。
- -v: 将宿主机路径挂载至容器。
最后,确认 Milvus 运行状态:
$ sudo docker ps
如果 Milvus 服务没有正常启动,执行以下命令查询错误日志:
$ sudo docker logs milvus_gpu_1.1.0
常见问题
可以在 Windows 上安装 Milvus 吗?
理论上只要能够支持 Docker 的操作系统都可以运行 Milvus。
为什么 Milvus 在启动时返回 Illegal instruction?
如果你的 CPU 不支持 SSE42、AVX、AVX2、AVX512 其中任何一个指令集,则 Milvus 无法正常启动。可以通过 cat /proc/cpuinfo 查看 CPU 支持的指令集。
Milvus 中如何实现数据迁移?
详见数据迁移。
注意:不同版本之间,数据可能会不兼容。目前数据格式兼容到 Milvus v0.7.0。
Milvus 只能使用 Docker 部署吗?
Milvus 还支持源码编译,该方法仅支持 Linux 系统。详见 从源代码编译 Milvus。
应如何设置 IVF 索引的 nlist 和 nprobe 参数?
IVF 索引的 nlist 值需要根据具体的使用情况去设置。一般来说,推荐值为 4 × sqrt(n),其中 n 为 segment 内的 entity 总量。 nprobe 的选取需要根据数据总量和实际场景在速度性能和准确率之间进行取舍。建议通过多次实验确定一个合理的值。 以下是使用公开测试数据集 sift50m 针对 nlist 和 nprobe 的一个测试。以索引类型 IVF_SQ8 为例,针对不同 nlist/nprobe 组合的搜索时间和召回率分别进行对比。
因 CPU 版 Milvus 和 GPU 版 Milvus 测试结果类似,此处仅展示基于 GPU 版 Milvus 测试的结果。
在本次测试中,nlist 和 nprobe 的值成比例增长,召回率随 nlist/nprobe 组合增长呈现上升的趋势。 在 nlist 为 4096 和 nprobe 为 128 时,速度性能最佳。
接下来你可以
- 如果你刚开始了解 Milvus:
-
- 运行示例程序
- 了解更多 Milvus 基础操作
- 体验 Milvus 在线训练营
- 如果你已准备好在生产环境中部署 Milvus:
-
- 创建 监控与报警系统 实时查看系统表现
- 设置 Milvus 参数
- 如果你想在仅有 CPU 的环境下使用 Milvus:
-
- 安装仅需 CPU 的 Milvus