Запуск 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/v3.0.1/milvus-standalone-docker-compose-gpu.yml -O docker-compose.yml
Вам необходимо внести следующие изменения в переменные среды автономного сервиса в файле YAML:
- Чтобы назначить Milvus конкретное GPU-устройство, найдите поле «
deploy.resources.reservations.devices[0].devices_ids» в определении службы «standalone» и замените его значение на ID нужного GPU. Для определения ID GPU-устройства можно использовать инструмент «nvidia-smi», входящий в состав драйверов отображения GPU от NVIDIA. Milvus поддерживает несколько GPU-устройств.
Назначение одного графического процессора для Milvus:
...
standalone:
...
deploy:
resources:
reservations:
devices:
- driver: nvidia
capabilities: ["gpu"]
device_ids: ["0"]
...
Назначение нескольких графических процессоров для 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 версии 1. В этом случае рекомендуется перейти на Docker Compose версии 2 в соответствии с примечаниями на этой странице.
После запуска 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
Вы также можете перейти в веб-интерфейс Milvus по адресу http://127.0.0.1:9091/webui/, чтобы узнать больше о вашем экземпляре Milvus. Подробности см. в разделе «Веб-интерфейс Milvus».
Если в файле docker-compose.yml вы назначили 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>
Storage V3 по умолчанию отключен. Включите его перед использованием функций, которые от него зависят. Требования и соображения по совместимости см. в разделе «Storage V3».
Что дальше
Установив Milvus в Docker, вы можете:
Ознакомьтесь с разделом «Быстрый старт», чтобы узнать, на что способен Milvus.
Ознакомьтесь с веб-интерфейсом Milvus, чтобы узнать больше об экземпляре Milvus.
Ознакомьтесь с основными операциями Milvus:
Разверните кластер Milvus в облаках:
Ознакомьтесь с Milvus WebUI — интуитивно понятным веб-интерфейсом для мониторинга и управления Milvus.
Ознакомьтесь с Milvus Backup — инструментом с открытым исходным кодом для резервного копирования данных Milvus.
Познакомьтесь с Birdwatcher — инструментом с открытым исходным кодом для отладки Milvus и динамического обновления конфигурации.
Познакомьтесь с Attu — инструментом с графическим интерфейсом с открытым исходным кодом для интуитивного управления Milvus.