当前位置: 首页 > article >正文

手把手教你从Docker中提取Milvus二进制文件并配置集群环境

深度解析从Docker镜像提取Milvus二进制文件的完整实践指南在向量数据库领域Milvus凭借其出色的性能和可扩展性已经成为众多AI应用的首选基础设施。虽然官方推荐使用Docker进行部署但在生产环境中直接使用二进制文件部署往往能带来更精细的资源控制和更高的性能调优空间。本文将带您深入探索从官方Docker镜像中提取Milvus核心组件的完整流程并构建一个稳定可靠的集群环境。1. 准备工作与环境配置1.1 系统要求与基础环境在开始提取二进制文件前我们需要确保基础环境满足Milvus的运行要求。推荐使用Ubuntu 22.04 LTS作为操作系统这是经过Milvus官方充分测试的稳定版本。关键系统参数检查# 检查系统版本 lsb_release -a # 检查内存大小建议至少8GB free -h # 检查CPU核心数建议4核以上 nproc # 检查磁盘空间建议至少50GB可用 df -h1.2 Docker环境准备由于我们需要从Docker镜像中提取文件因此需要先安装Docker引擎# 安装Docker依赖 sudo apt-get update sudo apt-get install -y ca-certificates curl gnupg # 添加Docker官方GPG密钥 sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod ar /etc/apt/keyrings/docker.gpg # 设置Docker仓库 echo \ deb [arch$(dpkg --print-architecture) signed-by/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release echo $VERSION_CODENAME) stable | \ sudo tee /etc/apt/sources.list.d/docker.list /dev/null # 安装Docker引擎 sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # 验证Docker安装 sudo docker run hello-world2. 从Docker镜像提取Milvus二进制文件2.1 获取官方Milvus镜像首先我们需要拉取官方提供的Milvus镜像。这里以v2.4.10版本为例# 拉取官方Milvus镜像 sudo docker pull milvusdb/milvus:v2.4.10 # 查看已下载的镜像 sudo docker images | grep milvus2.2 分析Docker镜像结构了解Docker镜像内部结构有助于我们准确提取所需文件。我们可以通过以下命令查看镜像的构建历史sudo docker history milvusdb/milvus:v2.4.10更详细的分析可以通过dive工具进行# 安装dive工具 wget https://github.com/wagoodman/dive/releases/download/v0.11.0/dive_0.11.0_linux_amd64.deb sudo apt install ./dive_0.11.0_linux_amd64.deb # 分析Milvus镜像 sudo dive milvusdb/milvus:v2.4.10通过分析我们发现Milvus的核心文件主要存放在以下目录/milvus/bin包含所有可执行文件/milvus/lib包含所有依赖库/milvus/configs包含默认配置文件2.3 提取二进制文件与依赖库现在我们可以启动一个临时容器并从中提取所需文件# 启动临时容器 sudo docker run -d --name milvus_temp milvusdb/milvus:v2.4.10 # 创建本地目录存放提取的文件 mkdir -p ~/milvus_binary/{bin,lib,configs} # 从容器中复制文件 sudo docker cp milvus_temp:/milvus/bin ~/milvus_binary/ sudo docker cp milvus_temp:/milvus/lib ~/milvus_binary/ sudo docker cp milvus_temp:/milvus/configs ~/milvus_binary/ # 停止并删除临时容器 sudo docker stop milvus_temp sudo docker rm milvus_temp2.4 验证提取的文件完整性提取完成后我们需要验证文件的完整性和可用性# 检查主要可执行文件 ls -lh ~/milvus_binary/bin/milvus # 检查动态库依赖 ldd ~/milvus_binary/bin/milvus # 测试运行应该显示帮助信息 ~/milvus_binary/bin/milvus --help3. 构建Milvus集群环境3.1 系统依赖安装Milvus运行需要一些系统级依赖库我们需要提前安装# 安装基础依赖 sudo apt-get update sudo apt-get install -y --no-install-recommends \ curl \ ca-certificates \ libaio-dev \ libgomp1 \ libopenblas-dev \ libssl-dev \ libtbb-dev # 验证依赖安装 ldconfig -p | grep -E libaio|libgomp|libopenblas3.2 环境变量配置为了确保Milvus能够正确找到所有依赖库我们需要设置适当的环境变量# 编辑bashrc文件 nano ~/.bashrc # 添加以下内容 export MILVUS_HOME~/milvus_binary export PATH$MILVUS_HOME/bin:$PATH export LD_LIBRARY_PATH$MILVUS_HOME/lib:$LD_LIBRARY_PATH:/usr/lib export LD_PRELOAD$MILVUS_HOME/lib/libjemalloc.so export MALLOC_CONFbackground_thread:true # 使配置生效 source ~/.bashrc3.3 集群组件部署Milvus集群需要依赖多个外部服务包括组件推荐版本作用部署方式建议etcdv3.5.0元数据存储Docker或二进制部署Pulsarv2.11.0消息队列Docker部署MinIORELEASE.2023-10-25T06-33-25Z对象存储Docker部署使用Docker Compose部署依赖服务version: 3.8 services: etcd: image: quay.io/coreos/etcd:v3.5.0 environment: - ETCD_AUTO_COMPACTION_MODErevision - ETCD_AUTO_COMPACTION_RETENTION1000 - ETCD_QUOTA_BACKEND_BYTES4294967296 - ETCD_SNAPSHOT_COUNT50000 volumes: - etcd_data:/etcd command: etcd -advertise-client-urlshttp://etcd:2379 -listen-client-urlshttp://0.0.0.0:2379 --data-dir /etcd pulsar: image: apachepulsar/pulsar:2.11.0 volumes: - pulsar_data:/pulsar/data command: bin/pulsar standalone --no-functions-worker -nss minio: image: minio/minio:RELEASE.2023-10-25T06-33-25Z volumes: - minio_data:/data environment: - MINIO_ROOT_USERminioadmin - MINIO_ROOT_PASSWORDminioadmin command: server /data --console-address :9001 volumes: etcd_data: pulsar_data: minio_data:启动依赖服务# 创建docker-compose.yml文件并启动服务 docker-compose up -d # 验证服务状态 docker-compose ps4. Milvus集群配置与优化4.1 配置文件详解Milvus的主要配置文件位于~/milvus_binary/configs目录。我们需要重点关注以下几个文件milvus.yaml主配置文件log_config.conf日志配置advanced_config.yaml高级性能调优配置关键配置项说明# milvus.yaml 关键配置 common: security: clusterToken: # 集群通信令牌生产环境建议设置 etcd: endpoints: - etcd:2379 # 对应docker-compose中的服务名 msgStream: type: pulsar # 消息队列类型 pulsar: address: pulsar://pulsar:6650 # Pulsar服务地址 minio: address: minio:9000 # MinIO服务地址 accessKeyID: minioadmin secretAccessKey: minioadmin bucketName: milvus-bucket useSSL: false4.2 集群节点配置在集群环境中我们需要为每个节点配置不同的角色。典型的Milvus集群包含三种角色协调节点(Coordinator)负责请求调度和元数据管理查询节点(QueryNode)处理查询请求数据节点(DataNode)处理数据插入和持久化配置示例协调节点# milvus.yaml common: role: coord coordinator: enableActiveStandby: true # 启用主备模式 port: 19530 # 服务端口配置示例查询节点# milvus.yaml common: role: query queryNode: port: 21123 # 查询服务端口4.3 性能优化建议根据不同的硬件配置我们可以调整以下参数以获得最佳性能参数默认值优化建议适用场景queryNode.simdTypeautoavx512/avx2CPU指令集优化dataNode.flush.insertBufSize16MB32MB-64MB高吞吐写入场景queryNode.cache.cacheSize4GB根据可用内存调整大规模向量查询common.gracefulTime500010000高负载环境内存优化配置示例# advanced_config.yaml memory: memoryHighLevel: 0.8 # 内存使用高水位线 memoryLowLevel: 0.6 # 内存使用低水位线 enableMlock: true # 锁定内存防止交换4.4 启动集群节点配置完成后我们可以启动各个节点# 启动协调节点 nohup ~/milvus_binary/bin/milvus run coordinator --config ~/milvus_binary/configs/milvus.yaml coordinator.log 21 # 启动查询节点 nohup ~/milvus_binary/bin/milvus run querynode --config ~/milvus_binary/configs/milvus.yaml querynode.log 21 # 启动数据节点 nohup ~/milvus_binary/bin/milvus run datanode --config ~/milvus_binary/configs/milvus.yaml datanode.log 21 验证节点状态# 检查进程状态 ps aux | grep milvus # 查看日志确认无报错 tail -f coordinator.log5. 集群管理与维护5.1 监控与日志收集一个健康的集群需要完善的监控系统。我们可以使用以下工具Prometheus收集指标数据Grafana可视化监控数据Loki集中日志收集Milvus监控指标配置# milvus.yaml metric: enable: true address: 0.0.0.0 port: 9091 # 监控指标暴露端口Prometheus配置示例# prometheus.yml scrape_configs: - job_name: milvus static_configs: - targets: [milvus-coordinator:9091, milvus-querynode:9091, milvus-datanode:9091]5.2 备份与恢复策略对于生产环境数据备份至关重要。我们可以使用以下方法元数据备份定期导出etcd数据对象存储备份使用MinIO的版本控制功能全量快照使用Milvus的备份工具etcd数据备份示例# 备份etcd数据 ETCDCTL_API3 etcdctl --endpointsetcd:2379 snapshot save etcd_backup.db # 恢复etcd数据 ETCDCTL_API3 etcdctl --endpointsetcd:2379 snapshot restore etcd_backup.db5.3 常见问题排查问题1启动时报错缺少依赖库解决方案# 检查缺少的库 ldd ~/milvus_binary/bin/milvus | grep not found # 安装缺失的依赖 sudo apt-get install -y 缺失的包名问题2性能瓶颈分析使用perf工具进行性能分析# 安装perf sudo apt-get install -y linux-tools-common linux-tools-generic # 收集性能数据 perf record -p $(pgrep -f milvus) -g -- sleep 30 perf report问题3内存泄漏排查使用jemalloc自带的统计功能# 设置jemalloc统计环境变量 export MALLOC_CONFstats_print:true # 重启Milvus服务后在日志中会看到内存统计信息

相关文章:

手把手教你从Docker中提取Milvus二进制文件并配置集群环境

深度解析:从Docker镜像提取Milvus二进制文件的完整实践指南 在向量数据库领域,Milvus凭借其出色的性能和可扩展性已经成为众多AI应用的首选基础设施。虽然官方推荐使用Docker进行部署,但在生产环境中,直接使用二进制文件部署往往…...

动态间隙精准诊断:NHJX-13 型底盘间隙仪机动车底盘安全检测全方案

动态间隙精准诊断:NHJX-13 型底盘间隙仪机动车底盘安全检测全方案在机动车安全环保检测体系中,底盘间隙仪是诊断车辆转向机构、悬挂系统、传动部件间隙状况的核心设备,尤其对大中型客车、重中型货车等营运车辆,其性能直接决定底盘…...

Mermaid Live Editor:5分钟掌握专业图表制作的在线实时编辑器

Mermaid Live Editor:5分钟掌握专业图表制作的在线实时编辑器 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-live…...

隐私保护×效率提升:开源OCR工具如何重构3大行业文本处理流程

隐私保护效率提升:开源OCR工具如何重构3大行业文本处理流程 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多…...

告别远程服务器:在Ubuntu 22.04上为ARM64嵌入式开发搭建本地sysroot环境(保姆级教程)

告别远程服务器:在Ubuntu 22.04上为ARM64嵌入式开发搭建本地sysroot环境(保姆级教程) 嵌入式开发者常面临一个尴尬困境:每次修改代码后,都需要将代码上传到远程ARM服务器或开发板进行编译测试,不仅耗时耗力…...

从3天到30分钟:OpCore-Simplify如何重构黑苹果配置的技术民主化之路

从3天到30分钟:OpCore-Simplify如何重构黑苹果配置的技术民主化之路 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 在黑苹果技术领域&…...

CentOS7下KingbaseES V9与MySQL性能对比实测:从安装到查询优化的全流程体验

CentOS7下KingbaseES V9与MySQL性能对比实测:从安装到查询优化的全流程体验 在国产数据库技术快速发展的今天,越来越多的企业开始关注从传统数据库向国产化解决方案的迁移。作为国产数据库中的佼佼者,KingbaseES V9凭借其出色的MySQL兼容性和…...

软件测试之压力测试总结

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 一、什么是压力测试软件测试中:压力测试(Stress Test),也称为强度测试、负载测试。压力测试是模拟实际应用的软硬件…...

intv_ai_mk11实测效果:在24GB显存限制下保持128~512 token长文本生成质量

intv_ai_mk11实测效果:在24GB显存限制下保持128~512 token长文本生成质量 1. 模型效果惊艳展示 intv_ai_mk11作为一款基于Llama架构的中等规模文本生成模型,在24GB显存环境下展现出了令人印象深刻的长文本生成能力。不同于常规模型在显存限制下容易出现…...

终极空洞骑士模组管理器:用Scarab实现10倍效率提升的完整指南

终极空洞骑士模组管理器:用Scarab实现10倍效率提升的完整指南 【免费下载链接】Scarab An installer for Hollow Knight mods written in Avalonia. 项目地址: https://gitcode.com/gh_mirrors/sc/Scarab 你是否曾经为《空洞骑士》安装模组时感到头疼&#x…...

Jmeter接口测试项目实战

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 1、什么是jmeter?JMeter是100%完全由Java语言编写的,免费的开源软件,是非常优秀的性能测试和接口测试工具,支持主流…...

Ostrakon-VL终端惊艳效果:终端打印支持ANSI颜色码高亮关键信息

Ostrakon-VL终端惊艳效果:终端打印支持ANSI颜色码高亮关键信息 1. 像素特工终端概览 Ostrakon-VL终端是一款专为零售与餐饮场景设计的智能扫描工具,基于Ostrakon-VL-8B多模态大模型开发。与传统工业级UI不同,它采用了独特的8-bit像素艺术风…...

专业级foobar2000个性化配置方案:提升音乐管理效率的foobox-cn

专业级foobar2000个性化配置方案:提升音乐管理效率的foobox-cn 【免费下载链接】foobox-cn DUI 配置 for foobar2000 项目地址: https://gitcode.com/GitHub_Trending/fo/foobox-cn foobox-cn是一套针对foobar2000音乐播放器的专业级DUI(DirectUI…...

Linux文件搜索工具FSearch:从卡顿到闪电的搜索体验革新

Linux文件搜索工具FSearch:从卡顿到闪电的搜索体验革新 【免费下载链接】fsearch A fast file search utility for Unix-like systems based on GTK3 项目地址: https://gitcode.com/gh_mirrors/fs/fsearch 在Linux系统中,文件搜索往往是一场与时…...

终极窗口置顶指南:如何让重要窗口永远不被遮挡

终极窗口置顶指南:如何让重要窗口永远不被遮挡 【免费下载链接】AlwaysOnTop Make a Windows application always run on top 项目地址: https://gitcode.com/gh_mirrors/al/AlwaysOnTop AlwaysOnTop 是一个轻量级的 Windows 应用程序,它能够将任…...

万象视界灵坛代码实例:使用Gradio快速搭建像素风Web UI,零前端开发经验可用

万象视界灵坛代码实例:使用Gradio快速搭建像素风Web UI,零前端开发经验可用 1. 项目概述 万象视界灵坛是一款基于OpenAI CLIP模型的多模态智能感知平台,它将复杂的语义对齐功能包装在充满游戏感的像素风界面中。这个项目最大的特点是完全不…...

intv_ai_mk11效果展示:中文古诗英译+文化注释+押韵风格选择(Shakespearean/Modern)

intv_ai_mk11效果展示:中文古诗英译文化注释押韵风格选择(Shakespearean/Modern) 1. 惊艳的中英古诗翻译能力 intv_ai_mk11在中文古诗翻译领域展现出令人惊叹的能力,不仅能准确传达原诗的意境,还能根据需求选择不同的…...

终极指南:如何使用Harepacker-resurrected打造个性化MapleStory游戏体验

终极指南:如何使用Harepacker-resurrected打造个性化MapleStory游戏体验 【免费下载链接】Harepacker-resurrected All in one .wz file/map editor for MapleStory game files 项目地址: https://gitcode.com/gh_mirrors/ha/Harepacker-resurrected 你是否曾…...

2026最权威的降重复率工具解析与推荐

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 知网AI检测系统会去对文本的语义连贯性展开多维分析,会对文本的句式结构进行多维…...

G-Helper终极指南:如何用轻量工具延长华硕笔记本电池寿命50%

G-Helper终极指南:如何用轻量工具延长华硕笔记本电池寿命50% 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Str…...

春联生成模型-中文-base:5分钟快速部署,小白也能轻松定制专属春联

春联生成模型-中文-base:5分钟快速部署,小白也能轻松定制专属春联 春节快到了,家家户户都要贴春联。可每年都写“福星高照”、“万事如意”,是不是有点腻了?想写点有新意的,又怕自己文采不够。别担心&…...

丹青幻境保姆级教程:LoRA卷轴版本管理与热更新机制在生产环境落地

丹青幻境保姆级教程:LoRA卷轴版本管理与热更新机制在生产环境落地 1. 项目背景与核心价值 丹青幻境是一款专为数字艺术创作者设计的AI绘画工具,它巧妙地将现代AI技术与传统东方美学相结合。与传统的技术工具不同,丹青幻境采用了宣纸质感界面…...

DocRes:统一文档图像修复任务的通用模型技术解析

DocRes:统一文档图像修复任务的通用模型技术解析 【免费下载链接】DocRes [CVPR 2024] DocRes: A Generalist Model Toward Unifying Document Image Restoration Tasks 项目地址: https://gitcode.com/gh_mirrors/do/DocRes 文档图像修复不再需要多个专用模…...

Mermaid Live Editor:重新定义图表创作的开源利器

Mermaid Live Editor:重新定义图表创作的开源利器 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-live-editor …...

文华财经与博易大师双轨期货多空变色线指标实战解析

1. 双轨期货多空变色线指标是什么? 如果你经常使用文华财经或博易大师进行期货交易,一定对主图上的各种技术指标不陌生。今天要介绍的这个双轨期货多空变色线指标,可以说是趋势交易者的"秘密武器"。简单来说,它就像给K线…...

开源 ESP32 网络收音机:OLED 界面与编码器交互全解析

1. ESP32网络收音机项目概述 第一次接触ESP32网络收音机项目时,我被这个小小的开发板展现出的强大功能震撼到了。想象一下,一个火柴盒大小的设备,不仅能连接WiFi播放全球各地的网络电台,还能通过OLED屏幕和编码器实现媲美商业产品…...

ConvNeXt 改进 :ConvNeXt添加可变形卷积(DCNv2,CVPR 2018),实现高效涨点,二次创新CNBlock结构 ,独家首发

本文教的是方法,也给出几种改进方法,二次创新结构,百变不离其宗,一文带你改进自己模型,科研路上少走弯路。 前言 DCNv2对原始的DCNv1进行了改进,可变形卷积网络的卓越性能源于其适应对象几何变化的能力。通过对其自适应行为的检查,虽然对其神经特征的空间支持比常规的Co…...

C++ 自动微分引擎:基于模板元编程的静态反向传播梯度流构建

C 自动微分引擎:基于模板元编程的静态反向传播梯度流构建尊敬的各位专家、同行,大家好。今天,我们将深入探讨一个兼具理论深度与工程实践价值的主题:如何利用 C 的模板元编程(Template Metaprogramming)技术…...

ROS实战:UZH-FPV数据集下PL-EVIO与主流VIO算法的性能对比

1. UZH-FPV数据集与无人机视觉里程计的挑战 UZH-FPV数据集是苏黎世联邦理工学院发布的专门针对高速无人机场景的多模态数据集。这个数据集最大的特点在于它完整记录了无人机在高速机动飞行(最高速度超过10m/s)时的多传感器数据,包括双目事件相…...

考研数学二高数公式太多记不住?我用Python+Anki做了一个自动出题复习工具

用PythonAnki打造考研数学二高数公式智能复习系统 备考考研数学二的同学,最头疼的莫过于海量高数公式的记忆。泰勒展开、微分方程解法、伽玛函数...这些公式不仅抽象难懂,还容易混淆。传统死记硬背效率低下,而市面上的公式手册又缺乏互动性。…...