Milvus Standalone skalieren
Milvus Standalone ist eine Serverbereitstellung auf einer einzigen Maschine. Alle Komponenten von Milvus Standalone sind in ein einziges Docker-Image gepackt, was die Bereitstellung erleichtert. Dieses Thema beschreibt die Skalierung einer Milvus-Instanz, die in diesem Modus läuft.
Vorraussetzungen
Bei der Bereitstellung von Milvus Standalone mit Docker oder Docker Compose erstellt das Bereitstellungsskript (standalone_embed.sh) oder die Konfigurationsdatei (docker-compose.yml) mehrere Volumes und ordnet sie Host-Verzeichnissen zu, um die Datenpersistenz sicherzustellen.
Um eine auf diese Weise bereitgestellte Milvus-Instanz zu skalieren, müssen Sie den vorhandenen Container oder Container-Stack stoppen und entfernen, Milvus Standalone mit aktualisierten Konfigurationseinstellungen neu bereitstellen und die persistierten Daten auf Ihrem Host wiederverwenden, um eine neue Instanz zu starten.
Die folgende Tabelle listet die Datenträgerzuordnung zwischen dem Host und den Containern auf.
Bereitstellungsoption |
Host-Pfad |
Container-Pfad |
|---|---|---|
Docker |
|
|
|
|
|
|
|
|
Docker Compose |
|
|
|
|
|
|
|
Bevor Sie die Verfahren in diesem Handbuch ausführen, stellen Sie sicher, dass Ihre Daten in den oben genannten Host-Pfaden vorhanden sind.
Skalieren von Instanzen, die mit Docker bereitgestellt wurden
Um eine laufende Milvus-Instanz zu skalieren, müssen Sie die Instanz anhalten, den Container entfernen und die Instanz mit neuen Einstellungen und persistierten Daten neu bereitstellen.
Das spezifische Verfahren ist wie folgt:
Führen Sie
docker stats milvus-standaloneaus, um die der Milvus-Instanz zugewiesene CPU und den Speicher anzuzeigen. Die Ausgabe sollte in etwa so aussehen wie die folgende: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 31In der Befehlsausgabe finden Sie die aktuelle Ressourcennutzung Ihrer Milvus-Instanz.
Stoppen und entfernen Sie den Container.
$ docker stop milvus-standalone $ docker rm milvus-standaloneSuchen Sie die Skriptdatei
standalone_embed.sh, finden Sie den Befehldocker runund fügen Sie die Ressourcenlimits hinzu.... 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/nullVergewissern Sie sich, dass sich die persistierten Daten im gleichen Ordner wie das Skript
standalone_embed.shbefinden, und führen Sie das Skript wie folgt aus:sudo bash standalone_embed.sh startFühren Sie
docker stats milvus-standaloneaus, um die CPU und den Speicher, die der Milvus-Instanz nach der Skalierung zugewiesen wurden, anzuzeigen. Die Ausgabe sollte in etwa so aussehen wie die folgende: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
Skalieren von Instanzen, die mit Docker Compose bereitgestellt wurden
Um eine aktuell laufende Milvus-Instanz zu skalieren, müssen Sie die Instanz stoppen, den Container-Stack entfernen und die Instanz mit neuen Einstellungen und persistierten Daten neu bereitstellen.
Das spezifische Verfahren ist wie folgt:
Führen Sie
docker stats milvus-standaloneaus, um die der Milvus-Instanz zugewiesene CPU und den Speicher anzuzeigen. Die Ausgabe sollte in etwa so aussehen wie die folgende: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 31In der Befehlsausgabe finden Sie die aktuelle Ressourcennutzung Ihrer Milvus-Instanz.
Stoppen und entfernen Sie den Container-Stack.
$ docker compose downSuchen Sie in der Konfigurationsdatei
docker-compose.ymlden Abschnitt "Standalone" und fügen Sie die Ressourcenbegrenzungen hinzu.... 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"Stellen Sie sicher, dass die persistierten Daten verfügbar sind, und führen Sie
docker composewie folgt aus:docker compose up -dFühren Sie
docker stats milvus-standaloneaus, um die CPU und den Speicher, die der Milvus-Instanz nach der Skalierung zugewiesen wurden, anzuzeigen. Die Ausgabe sollte in etwa so aussehen wie die folgende: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