🚀 免費嘗試 Zilliz Cloud,完全托管的 Milvus,體驗速度提升 10 倍!立即嘗試

milvus-logo
LFAI
主頁
  • 開始使用
  • Home
  • Docs
  • 開始使用

  • 安裝 Milvus

  • 使用 GPU 執行 Milvus

  • Docker Compose

使用 Docker Compose 運行支援 GPU 的 Milvus

本頁說明如何使用 Docker Compose 啟動支援 GPU 的 Milvus 實例。

先決條件

如果您在拉動映像時遇到任何問題,請透過community@zilliz.com與我們聯絡,並提供問題的詳細資訊,我們將為您提供必要的支援。

安裝 Milvus

若要使用 Docker Compose 安裝支援 GPU 的 Milvus,請遵循下列步驟。

1.下載並設定 YAML 檔案

下載 milvus-standalone-docker-compose-gpu.yml並手動儲存為 docker-compose.yml,或使用下列指令。

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

您需要對 YAML 檔案中獨立服務的環境變數做一些變更,如下所示:

  • 若要指定特定的 GPU 裝置給 Milvus,請找到standalone 服務定義中的deploy.resources.reservations.devices[0].devices_ids 欄位,並將其值更換為所需 GPU 的 ID。您可以使用 NVIDIA GPU 顯示驅動程式隨附的nvidia-smi 工具來確定 GPU 裝置的 ID。Milvus 支援多個 GPU 裝置。

指定單一 GPU 裝置至 Milvus:

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

指定多個 GPU 裝置至 Milvus:

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

2.啟動 Milvus

在存放 docker-compose.yml 的目錄中,執行啟動 Milvus:

$ sudo docker compose up -d

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

如果您無法執行上述指令,請檢查您的系統是否已安裝 Docker Compose V1。如果是這樣的話,建議您根據本頁面的說明,轉換到 Docker Compose V2。

啟動 Milvus 之後、

  • 命名為milvus- standalonemilvus-miniomilvus-etcd的容器已啟動。
    • milvus-etcd容器不向主機暴露任何連接埠,並將其資料映射到目前資料夾中的volumes/etcd
    • milvus-minio容器使用預設的驗證憑證在本機服務連接埠90909091,並將其資料對應到目前資料夾中的volumes/minio
    • milvus-standalone容器使用預設設定本機服務連接埠19530,並將其資料對應到目前資料夾中的volumes/milvus

您可以使用以下命令檢查容器是否已啟動和運行:

$ 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

您也可以存取 Milvus WebUI,網址是http://127.0.0.1:9091/webui/ ,以瞭解更多關於您的 Milvus 實例的資訊。如需詳細資訊,請參閱Milvus WebUI

如果您在 docker-compose.yml 中指定了多個 GPU 裝置給 Milvus,您可以指定哪個 GPU 裝置是可見或可用的。

讓 GPU 裝置0 對 Milvus 是可見的:

$ CUDA_VISIBLE_DEVICES=0 ./milvus run standalone

讓 GPU 裝置01 對 Milvus 是可見的:

$ CUDA_VISIBLE_DEVICES=0,1 ./milvus run standalone

您可以如下方式停止和刪除此容器。

# Stop Milvus
$ sudo docker compose down

# Delete service data
$ sudo rm -rf volumes

設定記憶體池

Milvus 開啟並運行後,您可以透過修改milvus.yaml 檔案中的initMemSizemaxMemSize 設定,自訂記憶體池內容。

milvus.yaml 檔案位於 Milvus 容器內的/milvus/configs/ 目錄。

要自訂記憶體池時,請修改milvus.yaml 檔案中的initMemSizemaxMemSize 設定,如下所示。

  1. 使用以下命令將milvus.yaml 從 Milvus 容器複製到您的本機。用您實際的 Milvus 容器 ID 取代<milvus_container_id>

    docker cp <milvus_container_id>:/milvus/configs/milvus.yaml milvus.yaml
    
  2. 使用您喜歡的文字編輯器開啟複製的milvus.yaml 檔案。例如,使用 vim:

    vim milvus.yaml
    
  3. 根據需要編輯initMemSizemaxMemSize 設定,並儲存您的變更:

    ...
    gpu:
      initMemSize: 0
      maxMemSize: 0
    ...
    
    • initMemSize:記憶體池的初始大小。預設為 1024。
    • maxMemSize:記憶體池的最大大小。預設為 2048。
  4. 使用以下命令將修改過的milvus.yaml 檔案複製回 Milvus 容器。用您實際的 Milvus 容器 ID 取代<milvus_container_id>

    docker cp milvus.yaml <milvus_container_id>:/milvus/configs/milvus.yaml
    
  5. 重新啟動 Milvus 容器以套用變更:

    docker stop <milvus_container_id>
    docker start <milvus_container_id>
    

下一步

在 Docker 中安裝 Milvus 後,您可以

免費嘗試托管的 Milvus

Zilliz Cloud 無縫接入,由 Milvus 提供動力,速度提升 10 倍。

開始使用
反饋

這個頁面有幫助嗎?