Scala Milvus Standalone

Milvus Standalone è una distribuzione di server a macchina singola. Tutti i componenti di Milvus Standalone sono racchiusi in un'unica immagine Docker, il che rende comoda la distribuzione. Questo argomento descrive come scalare un'istanza di Milvus in esecuzione in questa modalità.

Prerequisiti

Quando si distribuisce Milvus Standalone con Docker o Docker Compose, lo script di distribuzione (standalone_embed.sh) o il file di configurazione (docker-compose.yml) crea diversi volumi e li mappa in directory host per garantire la persistenza dei dati.

Per scalare un'istanza Milvus distribuita in questo modo, è necessario arrestare e rimuovere il contenitore o lo stack di contenitori esistente, distribuire nuovamente Milvus Standalone con le impostazioni di configurazione aggiornate e riutilizzare i dati persistenti sull'host per lanciare una nuova istanza.

La tabella seguente elenca la mappatura dei volumi tra l'host e i container.

Opzione di distribuzione

Percorso dell'host

Percorso del contenitore

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

Prima di eseguire le procedure di questa guida, assicuratevi che i vostri dati siano presenti nei percorsi degli host di cui sopra.

Scalare le istanze distribuite con Docker

Per scalare un'istanza Milvus in esecuzione, è necessario arrestare l'istanza, rimuovere il contenitore e distribuire nuovamente l'istanza con nuove impostazioni e dati persistenti.

La procedura specifica è la seguente:

  1. Eseguire docker stats milvus-standalone per visualizzare la CPU e la memoria allocate all'istanza Milvus. L'output dovrebbe essere simile al seguente:

    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
    

    Nell'output del comando, è possibile trovare l'utilizzo attuale delle risorse dell'istanza Milvus.

  2. Fermare e rimuovere il contenitore.

    $ docker stop milvus-standalone
    $ docker rm milvus-standalone
    
  3. Individuare il file di script standalone_embed.sh, trovare il comando docker run e aggiungere i limiti delle risorse.

    ...
        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. Assicurarsi che i dati persistenti siano nella stessa cartella dello script standalone_embed.sh ed eseguire lo script come segue:

    sudo  bash standalone_embed.sh start
    
  5. Eseguire docker stats milvus-standalone per visualizzare la CPU e la memoria allocate all'istanza Milvus dopo il ridimensionamento. L'output dovrebbe essere simile al seguente:

    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
    

Scalare le istanze distribuite con Docker Compose

Per scalare un'istanza Milvus in esecuzione, è necessario arrestare l'istanza, rimuovere lo stack di container e distribuire nuovamente l'istanza con nuove impostazioni e dati persistenti.

La procedura specifica è la seguente:

  1. Eseguire docker stats milvus-standalone per visualizzare la CPU e la memoria allocate all'istanza Milvus. L'output dovrebbe essere simile al seguente:

    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
    

    Nell'output del comando è possibile trovare l'utilizzo attuale delle risorse dell'istanza Milvus.

  2. Fermare e rimuovere lo stack di container.

    $ docker compose down
    
  3. Individuare il file di configurazione docker-compose.yml, trovare la sezione standalone e aggiungere i limiti delle risorse.

    ...
      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. Assicurarsi che i dati persistenti siano disponibili ed eseguire docker compose come segue:

    docker compose up -d
    
  5. Eseguire docker stats milvus-standalone per visualizzare la CPU e la memoria allocate all'istanza Milvus dopo il ridimensionamento. L'output dovrebbe essere simile al seguente:

    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
    

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

Questa pagina è stata utile?