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 |
|
|
|
|
|
|
|
|
Docker Compose |
|
|
|
|
|
|
|
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:
Eseguire
docker stats milvus-standaloneper 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 31Nell'output del comando, è possibile trovare l'utilizzo attuale delle risorse dell'istanza Milvus.
Fermare e rimuovere il contenitore.
$ docker stop milvus-standalone $ docker rm milvus-standaloneIndividuare il file di script
standalone_embed.sh, trovare il comandodocker rune 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/nullAssicurarsi che i dati persistenti siano nella stessa cartella dello script
standalone_embed.shed eseguire lo script come segue:sudo bash standalone_embed.sh startEseguire
docker stats milvus-standaloneper 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:
Eseguire
docker stats milvus-standaloneper 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 31Nell'output del comando è possibile trovare l'utilizzo attuale delle risorse dell'istanza Milvus.
Fermare e rimuovere lo stack di container.
$ docker compose downIndividuare 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"Assicurarsi che i dati persistenti siano disponibili ed eseguire
docker composecome segue:docker compose up -dEseguire
docker stats milvus-standaloneper 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