Milvus mit GPU-Unterstützung mit Docker Compose starten
Diese Seite veranschaulicht, wie man eine Milvus-Instanz mit GPU-Unterstützung mit Docker Compose startet.
Voraussetzungen
- Installieren Sie Docker.
- Prüfen Sie vor der Installationdie Anforderungen an Hardware und Software.
Wenn Sie beim Ziehen des Images auf Probleme stoßen, kontaktieren Sie uns unter community@zilliz.com und beschreiben Sie das Problem, damit wir Ihnen den nötigen Support bieten können.
Milvus installieren
Um Milvus mit GPU-Unterstützung mit Docker Compose zu installieren, führen Sie die folgenden Schritte aus.
1. Herunterladen und Konfigurieren der YAML-Datei
Laden Sie herunter milvus-standalone-docker-compose-gpu.yml
und speichern Sie sie als docker-compose.yml manuell oder mit dem folgenden Befehl.
$ wget https://github.com/milvus-io/milvus/releases/download/v2.4.18/milvus-standalone-docker-compose-gpu.yml -O docker-compose.yml
Sie müssen einige Änderungen an den Umgebungsvariablen des eigenständigen Dienstes in der YAML-Datei wie folgt vornehmen:
- Um Milvus ein bestimmtes GPU-Gerät zuzuweisen, suchen Sie das Feld
deploy.resources.reservations.devices[0].devices_ids
in der Definition desstandalone
-Dienstes und ersetzen Sie seinen Wert durch die ID der gewünschten GPU. Sie können das Toolnvidia-smi
verwenden, das in den NVIDIA-GPU-Anzeigetreibern enthalten ist, um die ID eines GPU-Geräts zu ermitteln. Milvus unterstützt mehrere GPU-Geräte.
Weisen Sie Milvus ein einzelnes GPU-Gerät zu:
...
standalone:
...
deploy:
resources:
reservations:
devices:
- driver: nvidia
capabilities: ["gpu"]
device_ids: ["0"]
...
Weisen Sie Milvus mehrere GPU-Geräte zu:
...
standalone:
...
deploy:
resources:
reservations:
devices:
- driver: nvidia
capabilities: ["gpu"]
device_ids: ['0', '1']
...
2. Starten Sie Milvus
Starten Sie Milvus in dem Verzeichnis, in dem sich die Datei docker-compose.yml befindet, indem Sie den Befehl ausführen:
$ sudo docker compose up -d
Creating milvus-etcd ... done
Creating milvus-minio ... done
Creating milvus-standalone ... done
Wenn Sie den obigen Befehl nicht ausführen konnten, überprüfen Sie, ob auf Ihrem System Docker Compose V1 installiert ist. Wenn dies der Fall ist, sollten Sie aufgrund der Hinweise auf dieser Seite auf Docker Compose V2 migrieren.
Nach dem Starten von Milvus,
- Container mit den Namen milvus-standalone, milvus-minio und milvus-etcd sind vorhanden.
- Der milvus-etcd-Container stellt dem Host keine Ports zur Verfügung und mappt seine Daten auf volumes/etcd im aktuellen Ordner.
- Der milvus-minio-Container bedient die Ports 9090 und 9091 lokal mit den Standard-Authentifizierungsdaten und ordnet seine Daten den Volumes/minio im aktuellen Ordner zu.
- Der milvus-standalone-Container bedient lokal die Ports 19530 mit den Standardeinstellungen und ordnet seine Daten den Volumes/milvus im aktuellen Ordner zu.
Mit folgendem Befehl können Sie überprüfen, ob die Container aktiv sind:
$ sudo docker compose ps
Name Command State Ports
--------------------------------------------------------------------------------------------------------------------
milvus-etcd etcd -advertise-client-url ... Up 2379/tcp, 2380/tcp
milvus-minio /usr/bin/docker-entrypoint ... Up (healthy) 9000/tcp
milvus-standalone /tini -- milvus run standalone Up 0.0.0.0:19530->19530/tcp, 0.0.0.0:9091->9091/tcp
Wenn Sie Milvus in der Datei docker-compose.yml mehrere GPU-Geräte zugewiesen haben, können Sie angeben, welches GPU-Gerät sichtbar oder zur Verwendung verfügbar ist.
Machen Sie das GPU-Gerät 0
für Milvus sichtbar:
$ CUDA_VISIBLE_DEVICES=0 ./milvus run standalone
Machen Sie die GPU-Geräte 0
und 1
für Milvus sichtbar:
$ CUDA_VISIBLE_DEVICES=0,1 ./milvus run standalone
Sie können diesen Container wie folgt stoppen und löschen.
# Stop Milvus
$ sudo docker compose down
# Delete service data
$ sudo rm -rf volumes
Speicherpool konfigurieren
Nachdem Milvus eingerichtet ist und läuft, können Sie den Speicherpool anpassen, indem Sie die Einstellungen initMemSize
und maxMemSize
in der Datei milvus.yaml
ändern.
Die Datei milvus.yaml
befindet sich im Verzeichnis /milvus/configs/
innerhalb des Milvus-Containers.
Um den Speicherpool zu konfigurieren, ändern Sie die Einstellungen initMemSize
und maxMemSize
in der Datei milvus.yaml
wie folgt.
Verwenden Sie den folgenden Befehl, um
milvus.yaml
aus dem Milvus-Container auf Ihren lokalen Rechner zu kopieren. Ersetzen Sie<milvus_container_id>
durch Ihre aktuelle Milvus-Container-ID.docker cp <milvus_container_id>:/milvus/configs/milvus.yaml milvus.yaml
Öffnen Sie die kopierte Datei
milvus.yaml
mit Ihrem bevorzugten Texteditor. Zum Beispiel mit vim:vim milvus.yaml
Bearbeiten Sie die Einstellungen
initMemSize
undmaxMemSize
nach Bedarf und speichern Sie Ihre Änderungen:... gpu: initMemSize: 0 maxMemSize: 0 ...
initMemSize
: Anfangsgröße des Speicherpools. Die Voreinstellung ist 1024.maxMemSize
: Maximale Größe des Speicherpools. Die Voreinstellung ist 2048.
Verwenden Sie den folgenden Befehl, um die geänderte Datei
milvus.yaml
zurück in den Milvus-Container zu kopieren. Ersetzen Sie<milvus_container_id>
durch Ihre aktuelle Milvus-Container-ID.docker cp milvus.yaml <milvus_container_id>:/milvus/configs/milvus.yaml
Starten Sie den Milvus-Container neu, um die Änderungen zu übernehmen:
docker stop <milvus_container_id> docker start <milvus_container_id>
Wie geht es weiter?
Nachdem Sie Milvus in Docker installiert haben, können Sie:
Prüfen Sie den Schnellstart, um zu sehen, was Milvus kann.
Lernen Sie die grundlegenden Funktionen von Milvus kennen:
Verteilen Sie Ihren Milvus-Cluster auf Clouds:
Erkunden Sie Milvus Backup, ein Open-Source-Tool für Milvus-Datensicherungen.
Birdwatcher, ein Open-Source-Tool zur Fehlersuche in Milvus und für dynamische Konfigurations-Updates.
Entdecken Sie Attu, ein Open-Source-GUI-Tool für die intuitive Milvus-Verwaltung.