Запуск Milvus с поддержкой GPU с помощью Docker Compose
На этой странице показано, как запустить экземпляр Milvus с поддержкой GPU с помощью Docker Compose.
Необходимые условия
Если у вас возникнут проблемы с запуском образа, свяжитесь с нами по адресу community@zilliz.com и подробно расскажите о проблеме, и мы окажем вам необходимую поддержку.
Установка Milvus
Чтобы установить Milvus с поддержкой GPU с помощью Docker Compose, выполните следующие действия.
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, найдите поле
deploy.resources.reservations.devices[0].devices_ids
в определении сервисаstandalone
и замените его значение на ID нужного GPU. Для определения идентификатора GPU-устройства можно использовать инструментnvidia-smi
, входящий в состав драйверов дисплея NVIDIA GPU. Milvus поддерживает несколько устройств GPU.
Назначьте Milvus одно устройство GPU:
...
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 не открывает никаких портов для хоста и сопоставляет свои данные с томами/etcd в текущей папке.
- Контейнер milvus-minio обслуживает порты 9090 и 9091 локально, используя стандартные учетные данные аутентификации, и сопоставляет свои данные с томами/minio в текущей папке.
- Контейнер milvus-standalone обслуживает порты 19530 локально с настройками по умолчанию и сопоставляет свои данные с томами/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-устройства 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 вы можете настроить пул памяти, изменив параметры initMemSize
и maxMemSize
в файле milvus.yaml
.
Файл milvus.yaml
находится в каталоге /milvus/configs/
внутри контейнера Milvus.
Чтобы настроить пул памяти, измените параметры initMemSize
и maxMemSize
в файле milvus.yaml
следующим образом.
Используйте следующую команду, чтобы скопировать
milvus.yaml
из контейнера Milvus на локальную машину. Замените<milvus_container_id>
на реальный идентификатор контейнера Milvus.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.docker cp milvus.yaml <milvus_container_id>:/milvus/configs/milvus.yaml
Перезапустите контейнер Milvus, чтобы применить изменения:
docker stop <milvus_container_id> docker start <milvus_container_id>
Что дальше
Установив Milvus в Docker, вы можете:
Проверить Quickstart, чтобы узнать, на что способен Milvus.
Проверить Milvus WebUI, чтобы узнать больше об экземпляре Milvus.
Изучить основные операции Milvus:
Развертывание кластера Milvu в облаках:
Изучите Milvus WebUI, интуитивно понятный веб-интерфейс для наблюдения и управления Milvus.
Изучите Milvus Backup, инструмент с открытым исходным кодом для резервного копирования данных Milvus.
Изучите Birdwatcher, инструмент с открытым исходным кодом для отладки Milvus и динамического обновления конфигурации.
Изучите Attu, инструмент с открытым исходным кодом GUI для интуитивного управления Milvus.