Menjalankan Milvus dengan Dukungan GPU Menggunakan Docker Compose

Halaman ini menjelaskan cara menjalankan instance Milvus dengan dukungan GPU menggunakan Docker Compose.

Persyaratan

Jika Anda mengalami masalah saat menarik gambar, hubungi kami di community@zilliz.com dengan detail mengenai masalah tersebut, dan kami akan memberikan dukungan yang diperlukan.

Instal Milvus

Untuk menginstal Milvus dengan dukungan GPU menggunakan Docker Compose, ikuti langkah-langkah berikut.

1. Unduh dan konfigurasikan berkas YAML

Unduh milvus-standalone-docker-compose-gpu.yml dan simpan sebagai docker-compose.yml secara manual, atau dengan perintah berikut.

$ wget https://github.com/milvus-io/milvus/releases/download/v3.0.0/milvus-standalone-docker-compose-gpu.yml -O docker-compose.yml

Anda perlu melakukan beberapa perubahan pada variabel lingkungan layanan mandiri di berkas YAML sebagai berikut:

  • Untuk menetapkan perangkat GPU tertentu ke Milvus, temukan bidang ` deploy.resources.reservations.devices[0].devices_ids ` dalam definisi layanan ` standalone ` dan ganti nilainya dengan ID GPU yang diinginkan. Anda dapat menggunakan alat ` nvidia-smi `, yang disertakan dalam driver tampilan GPU NVIDIA, untuk menentukan ID perangkat GPU. Milvus mendukung beberapa perangkat GPU.

Menetapkan satu perangkat GPU ke Milvus:

...
standalone:
  ...
  deploy:
    resources:
      reservations:
        devices:
          - driver: nvidia
            capabilities: ["gpu"]
            device_ids: ["0"]
...

Menetapkan beberapa perangkat GPU ke Milvus:

...
standalone:
  ...
  deploy:
    resources:
      reservations:
        devices:
          - driver: nvidia
            capabilities: ["gpu"]
            device_ids: ['0', '1']
...

2. Jalankan Milvus

Di direktori yang menyimpan berkas `docker-compose.yml`, jalankan Milvus dengan perintah berikut:

$ sudo docker compose up -d

Creating milvus-etcd  ... done
Creating milvus-minio ... done
Creating milvus-standalone ... done

Jika Anda gagal menjalankan perintah di atas, periksa apakah sistem Anda telah menginstal Docker Compose V1. Jika demikian, Anda disarankan untuk beralih ke Docker Compose V2 sesuai dengan catatan pada halaman ini.

Setelah Milvus dimulai,

  • Kontainer bernama milvus-standalone, milvus-minio, dan milvus-etcd sudah aktif.
    • Kontainer milvus-etcd tidak mengekspos port apa pun ke host dan memetakan datanya ke volumes/etcd di folder saat ini.
    • Kontainer milvus-minio melayani port 9090 dan 9091 secara lokal dengan kredensial otentikasi default dan memetakan datanya ke volumes/minio di folder saat ini.
    • Kontainer milvus-standalone melayani port 19530 secara lokal dengan pengaturan default dan memetakan datanya ke volumes/milvus di folder saat ini.

Anda dapat memeriksa apakah kontainer-kontainer tersebut aktif dan berjalan menggunakan perintah berikut:

$ 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

Anda juga dapat mengakses Milvus WebUI di http://127.0.0.1:9091/webui/ untuk mempelajari lebih lanjut tentang instance Milvus Anda. Untuk detailnya, lihat Milvus WebUI.

Jika Anda telah menetapkan beberapa perangkat GPU ke Milvus di docker-compose.yml, Anda dapat menentukan perangkat GPU mana yang terlihat atau tersedia untuk digunakan.

Jadikan perangkat GPU 0 terlihat oleh Milvus:

$ CUDA_VISIBLE_DEVICES=0 ./milvus run standalone

Jadikan perangkat GPU 0 dan 1 terlihat oleh Milvus:

$ CUDA_VISIBLE_DEVICES=0,1 ./milvus run standalone

Anda dapat menghentikan dan menghapus kontainer ini sebagai berikut.

# Stop Milvus
$ sudo docker compose down

# Delete service data
$ sudo rm -rf volumes

Konfigurasi pool memori

Setelah Milvus berjalan, Anda dapat menyesuaikan pool memori dengan mengubah pengaturan initMemSize dan maxMemSize di berkas milvus.yaml.

Berkas milvus.yaml terletak di direktori /milvus/configs/ di dalam kontainer Milvus.

Untuk mengonfigurasi pool memori, ubah pengaturan initMemSize dan maxMemSize dalam berkas milvus.yaml sebagai berikut.

  1. Gunakan perintah berikut untuk menyalin ` milvus.yaml ` dari kontainer Milvus ke mesin lokal Anda. Ganti ` <milvus_container_id> ` dengan ID kontainer Milvus Anda yang sebenarnya.

    docker cp <milvus_container_id>:/milvus/configs/milvus.yaml milvus.yaml
    
  2. Buka berkas milvus.yaml yang telah disalin menggunakan editor teks pilihan Anda. Misalnya, menggunakan vim:

    vim milvus.yaml
    
  3. Edit pengaturan ` initMemSize ` dan ` maxMemSize ` sesuai kebutuhan, lalu simpan perubahan Anda:

    ...
    gpu:
      initMemSize: 0
      maxMemSize: 0
    ...
    
    • initMemSize: Ukuran awal kolam memori. Nilai defaultnya adalah 1024.
    • maxMemSize: Ukuran maksimum kolam memori. Nilai defaultnya adalah 2048.
  4. Gunakan perintah berikut untuk menyalin berkas ` milvus.yaml ` yang telah dimodifikasi kembali ke kontainer Milvus. Ganti ` <milvus_container_id> ` dengan ID kontainer Milvus Anda yang sebenarnya.

    docker cp milvus.yaml <milvus_container_id>:/milvus/configs/milvus.yaml
    
  5. Mulai ulang kontainer Milvus untuk menerapkan perubahan:

    docker stop <milvus_container_id>
    docker start <milvus_container_id>
    

Storage V3 dinonaktifkan secara default. Aktifkan fitur ini sebelum menggunakan fitur-fitur yang bergantung padanya. Untuk persyaratan dan pertimbangan kompatibilitas, lihat Storage V3.

Langkah selanjutnya

Setelah menginstal Milvus di Docker, Anda dapat:

Diterjemahkan olehDeepL

Office Hours

Jam Kantor Milvus

Dapatkan bantuan untuk penerapan produksi dari Zilliz, para ahli di Milvus.

Pesan sesi 1:1 gratis

Coba Milvus yang Dikelola secara Gratis

Zilliz Cloud bebas masalah, didukung oleh Milvus dan 10x lebih cepat.

Mulai
Umpan balik

Apakah halaman ini bermanfaat?