擴充 Milvus Standalone

Milvus Standalone 是單機伺服器部署。Milvus Standalone 的所有元件都包裝在單一Docker 映像檔中,讓部署更方便。本主題描述如何擴充在此模式下執行的 Milvus 實例。

先決條件

使用DockerDocker Compose 部署 Milvus Standalone 時,部署腳本 (standalone_embed.sh) 或配置檔案 (docker-compose.yml) 會建立數個磁碟區,並將它們映射到主機目錄,以確保資料的持久性。

若要擴充以這種方式部署的 Milvus 實例,您必須停止並移除現有的容器或容器堆疊,以更新的組態設定重新部署 Milvus Standalone,並重複使用主機上的持久化資料來啟動新實例。

下表列出了主機和容器之間的卷對應。

部署選項

主機路徑

容器路徑

Docker

$(pwd)/volumes/milvus

/var/lib/milvus

$(pwd)/embedEtcd.yaml

/milvus/configs/embedEtcd.yaml

$(pwd)/user.yaml

/milvus/configs/user.yaml

Docker Compose

${DOCKER_VOLUME_DIRECTORY:-.}/volumes/etcd(milvus-etcd)

/etcd

${DOCKER_VOLUME_DIRECTORY:-.}/volumes/minio(milvus-minio)

/minio_data

${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus(milvus-standalone)

/var/lib/milvus

執行本指南中的程序之前,請確保您的資料持續存在於上述主機路徑中。

擴充使用 Docker 部署的實體

要擴充目前正在執行的 Milvus 實例,您必須停止實例、移除容器,然後以新的設定和持久化資料重新部署實例。

具體步驟如下:

  1. 運行docker stats milvus-standalone 查看分配給 Milvus 實例的 CPU 和記憶體。輸出應該與下面相似:

    CONTAINER ID   NAME                CPU %     MEM USAGE / LIMIT     MEM %     NET I/O       BLOCK I/O         PIDS
    917da667f2ff   milvus-standalone   6.10%     171.8MiB / 3.886GiB   4.32%     1.57kB / 0B   1.01GB / 1.79MB   31
    

    在命令輸出中,您可以找到 Milvus 實例的當前資源使用情況。

  2. 停止並移除容器。

    $ docker stop milvus-standalone
    $ docker rm milvus-standalone
    
  3. 找到standalone_embed.sh 指令碼檔案,找到docker run 指令,並加入資源限制。

    ...
        sudo docker run -d \
            --name milvus-standalone \
            --security-opt seccomp:unconfined \
            -e ETCD_USE_EMBED=true \
            -e ETCD_DATA_DIR=/var/lib/milvus/etcd \
            -e ETCD_CONFIG_PATH=/milvus/configs/embedEtcd.yaml \
            -e COMMON_STORAGETYPE=local \
            -v $(pwd)/volumes/milvus:/var/lib/milvus \
            -v $(pwd)/embedEtcd.yaml:/milvus/configs/embedEtcd.yaml \
            -v $(pwd)/user.yaml:/milvus/configs/user.yaml \
            -p 19530:19530 \
            -p 9091:9091 \
            -p 2379:2379 \
            --health-cmd="curl -f http://localhost:9091/healthz" \
            --health-interval=30s \
            --health-start-period=90s \
            --health-timeout=20s \
            --health-retries=3 \
            --memory="4g" \          # New memory limit
            --cpus="2.0" \           # New CPU limit
            milvusdb/milvus:v2.5.11 \
            milvus run standalone  1> /dev/null
    
  4. 確保持久化資料與standalone_embed.sh 指令碼在同一資料夾,並執行指令碼如下:

    sudo  bash standalone_embed.sh start
    
  5. 執行docker stats milvus-standalone ,查看縮放後分配給 Milvus 實例的 CPU 和記憶體。輸出應與下列內容相似:

    CONTAINER ID   NAME                CPU %     MEM USAGE / LIMIT   MEM %     NET I/O       BLOCK I/O        PIDS
    7aea450f87ce   milvus-standalone   7.52%     210.9MiB / 4GiB     5.15%     1.05kB / 0B   610kB / 8.19kB   29
    

縮放使用 Docker Compose 部署的實例

要縮放目前正在執行的 Milvus 實例,您必須停止實例、移除容器堆疊,然後以新的設定和持久化資料重新部署實例。

具體步驟如下:

  1. 執行docker stats milvus-standalone ,查看分配給 Milvus 實例的 CPU 和記憶體。輸出應該與下面相似:

    CONTAINER ID   NAME                CPU %     MEM USAGE / LIMIT     MEM %     NET I/O       BLOCK I/O         PIDS
    917da667f2ff   milvus-standalone   6.10%     171.8MiB / 3.886GiB   4.32%     1.57kB / 0B   1.01GB / 1.79MB   31
    

    在命令輸出中,您可以找到 Milvus 實例的當前資源使用情況。

  2. 停止並移除容器堆疊。

    $ docker compose down
    
  3. 找到docker-compose.yml 配置文件,找到獨立部分,並添加資源限制。

    ...
      standalone:
        container_name: milvus-standalone
        image: milvusdb/milvus:v2.5.8
        command: ["milvus", "run", "standalone"]
        deploy:
          resources:
            limits:
              cpus: "2"   # new cpu limits
              memory: 4G  # new memory limits
        security_opt:
        - seccomp:unconfined
        environment:
          ETCD_ENDPOINTS: etcd:2379
          MINIO_ADDRESS: minio:9000
        volumes:
          - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvus
        healthcheck:
          test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"]
          interval: 30s
          start_period: 90s
          timeout: 20s
          retries: 3
        ports:
          - "19530:19530"
          - "9091:9091"
        depends_on:
          - "etcd"
          - "minio"
    
  4. 確保持久化資料可用,並執行docker compose ,如下所示:

    docker compose up -d
    
  5. 執行docker stats milvus-standalone ,查看縮放後分配給 Milvus 實例的 CPU 和記憶體。輸出應該與下列內容相似:

    CONTAINER ID   NAME                CPU %     MEM USAGE / LIMIT   MEM %     NET I/O       BLOCK I/O        PIDS
    7aea450f87ce   milvus-standalone   7.52%     210.9MiB / 4GiB     5.15%     1.05kB / 0B   610kB / 8.19kB   29
    

免費嘗試托管的 Milvus

Zilliz Cloud 無縫接入,由 Milvus 提供動力,速度提升 10 倍。

開始使用
反饋

這個頁面有幫助嗎?