使用 Docker Compose 執行具備 GPU 支援的 Milvus
本頁面說明如何使用 Docker Compose 啟動具備 GPU 支援的 Milvus 實例。
先決條件
- 安裝 Docker。
- 安裝前請先確認硬體與軟體的系統需求。
若在拉取映像檔時遇到任何問題,請透過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.6.23/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-standalone、milvus-minio 及milvus-etcd的容器已啟動。
- milvus-etcd容器不會向主機公開任何連接埠,並將其資料映射至當前資料夾中的volumes/etcd。
- milvus-minio容器使用預設的認證憑證在本地端提供9090和9091埠,並將其資料映射至當前資料夾中的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
您也可以透過http://127.0.0.1:9091/webui/ 存取 Milvus WebUI,以進一步了解您的 Milvus 實例。詳細資訊請參閱Milvus WebUI。
若您已在 `docker-compose.yml` 中為 Milvus 指派了多個 GPU 裝置,您可以指定哪些 GPU 裝置對 Milvus 可見或可供使用。
讓 GPU 裝置0 對 Milvus 可見:
$ CUDA_VISIBLE_DEVICES=0 ./milvus run standalone
讓 GPU 裝置0 和1 對 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 ` 檔案中的 `initMemSize ` 和 `maxMemSize ` 設定來自訂記憶體池。
milvus.yaml 檔案位於 Milvus 容器內的/milvus/configs/ 目錄中。
若要設定記憶體池,請依下述方式修改milvus.yaml 檔案中的initMemSize 和maxMemSize 設定。
請使用以下命令,將 Milvus 容器中的
milvus.yaml複製到您的本地機器。請將<milvus_container_id>替換為您實際的 Milvus 容器 ID。docker cp <milvus_container_id>:/milvus/configs/milvus.yaml milvus.yaml使用您偏好的文字編輯器開啟已複製的
milvus.yaml檔案。例如,使用 vim:vim milvus.yaml根據需要編輯
initMemSize和maxMemSize的設定,並儲存變更:... gpu: initMemSize: 0 maxMemSize: 0 ...initMemSize: 記憶體池的初始大小。預設值為 1024。maxMemSize: 記憶體池的最大大小。預設值為 2048。
請使用以下指令,將修改後的
milvus.yaml檔案複製回 Milvus 容器中。請將<milvus_container_id>替換為您實際的 Milvus 容器 ID。docker cp milvus.yaml <milvus_container_id>:/milvus/configs/milvus.yaml重新啟動 Milvus 容器以套用變更:
docker stop <milvus_container_id> docker start <milvus_container_id>
接下來該做什麼
在 Docker 中安裝 Milvus 後,您可以:
參閱《快速入門》以了解 Milvus 的功能。
瀏覽Milvus WebUI以進一步了解該 Milvus 執行個體。
學習 Milvus 的基本操作:
在雲端平台上部署您的 Milvus 叢集:
探索Milvus WebUI,這是一個用於 Milvus 可觀察性與管理的直觀網頁介面。
探索Milvus Backup,這是一款用於 Milvus 資料備份的開源工具。
探索Birdwatcher,這是一款用於 Milvus 除錯與動態配置更新的開源工具。
探索Attu,這是一款用於直觀管理 Milvus 的開源圖形化介面工具。