milvus-logo
LFAI
Home
  • Los geht's

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

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.17/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 des standalone -Dienstes und ersetzen Sie seinen Wert durch die ID der gewünschten GPU. Sie können das Tool nvidia-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.

  1. 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
    
  2. Öffnen Sie die kopierte Datei milvus.yaml mit Ihrem bevorzugten Texteditor. Zum Beispiel mit vim:

    vim milvus.yaml
    
  3. Bearbeiten Sie die Einstellungen initMemSize und maxMemSize 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.
  4. 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
    
  5. 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:

Übersetzt vonDeepLogo

Try Managed Milvus for Free

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

Get Started
Feedback

War diese Seite hilfreich?