共计 1377 个字符,预计需要花费 4 分钟才能阅读完成。
技术背景
Milvus 是一个开源的向量数据库,专为海量向量数据的相似性搜索和人工智能应用而设计。它的核心特点包括分布式架构、支持多种向量索引类型(如 IVF_FLAT、HNSW 等),以及高度优化的查询性能。裸机部署 Milvus 的主要优势在于避免了容器化带来的额外开销,能够直接利用硬件资源,同时允许更灵活的定制化编译优化,特别适合生产环境中的高性能需求。

环境准备
系统要求
- CentOS 7 最小化安装,内核版本不低于 3.10
- gcc 版本 7.5 或更高
- 至少 16GB 内存(推荐 32GB 以上)
- 100GB 以上磁盘空间(SSD 推荐)
依赖库清单
- protobuf 3.14.0
- grpc 1.37.0
- boost 1.65.1
- OpenBLAS 0.3.10
- faiss 1.7.0
- CUDA 11.0(如使用 GPU 加速)
源码编译实战
安装依赖
- 更新系统并安装基础工具
sudo yum update -y
sudo yum install -y epel-release
sudo yum install -y git gcc-c++ make cmake3
- 安装 protobuf 和 grpc
sudo yum install -y protobuf-devel grpc-devel
- 安装 OpenBLAS
sudo yum install -y openblas-devel
编译 Milvus
- 克隆 Milvus 源码
git clone https://github.com/milvus-io/milvus.git
cd milvus
git checkout v2.0.0
- 编译并安装
mkdir build
cd build
cmake3 .. -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)
sudo make install
关键配置
storage.path:设置数据存储目录,确保有足够权限cache.size:根据可用内存调整缓存大小
性能调优
索引参数模板
- IVF_FLAT:适合高精度搜索
- HNSW:适合高召回率场景
内存优化
调整 vm.max_map_count:
sudo sysctl -w vm.max_map_count=655300
避坑指南
解决 GLIBCXX_3.4.20 缺失问题
sudo yum install -y libstdc++-static
多版本 CUDA 共存
设置环境变量:
export PATH=/usr/local/cuda-11.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.0/lib64:$LD_LIBRARY_PATH
验证方案
连通性测试
使用 pymilvus 进行测试:
from pymilvus import connections, utility
connections.connect(host='localhost', port='19530')
print(utility.get_server_version())
压力测试
使用 milvus_benchmark:
./milvus_benchmark -h localhost -p 19530 -c config.yaml
结语
通过本文的步骤,你应该已经成功在 CentOS 7 上完成了 Milvus 的裸机部署。裸机部署虽然步骤较多,但能够带来更好的性能和更灵活的配置选项,适合对性能有严格要求的生产环境。如果在部署过程中遇到问题,可以参考 Milvus 的官方文档或社区支持。
正文完
