Масштабирование Milvus Standalone
Milvus Standalone - это серверное развертывание на одной машине. Все компоненты Milvus Standalone упакованы в один образ Docker, что делает развертывание удобным. В этой теме описывается, как масштабировать экземпляр Milvus, работающий в этом режиме.
Предварительные требования
При развертывании Milvus Standalone с помощью Docker или Docker Compose сценарий развертывания (standalone_embed.sh) или файл конфигурации (docker-compose.yml) создает несколько томов и сопоставляет их с каталогами хоста для обеспечения сохранности данных.
Чтобы масштабировать развернутый таким образом экземпляр Milvus, необходимо остановить и удалить существующий контейнер или стек контейнеров, развернуть Milvus Standalone с обновленными параметрами конфигурации и повторно использовать сохраненные данные на хосте для запуска нового экземпляра.
В следующей таблице приведено сопоставление томов между хостом и контейнерами.
Вариант развертывания |
Путь к хосту |
Путь к контейнеру |
|---|---|---|
Docker |
|
|
|
|
|
|
|
|
Docker Compose |
|
|
|
|
|
|
|
Перед выполнением процедур, описанных в этом руководстве, убедитесь, что ваши данные сохраняются в указанных выше путях к хостам.
Масштабирование экземпляров, развернутых с помощью Docker
Чтобы масштабировать работающий экземпляр Milvus, необходимо остановить экземпляр, удалить контейнер и развернуть его заново с новыми настройками и сохраненными данными.
Процедура выглядит следующим образом:
Запустите
docker stats milvus-standalone, чтобы просмотреть процессор и память, выделенные экземпляру Milvus. Результат должен быть похож на следующий:CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 917da667f2ff milvus-standalone 6.10% 171.8MiB / 3.886GiB 4.32% 1.57kB / 0B 1.01GB / 1.79MB 31В выводе команды вы можете найти текущее использование ресурсов экземпляра Milvus.
Остановите и удалите контейнер.
$ docker stop milvus-standalone $ docker rm milvus-standaloneНайдите файл сценария
standalone_embed.sh, найдите командуdocker runи добавьте ограничения на ресурсы.... sudo docker run -d \ --name milvus-standalone \ --security-opt seccomp:unconfined \ -e ETCD_USE_EMBED=true \ -e ETCD_DATA_DIR=/var/lib/milvus/etcd \ -e ETCD_CONFIG_PATH=/milvus/configs/embedEtcd.yaml \ -e COMMON_STORAGETYPE=local \ -v $(pwd)/volumes/milvus:/var/lib/milvus \ -v $(pwd)/embedEtcd.yaml:/milvus/configs/embedEtcd.yaml \ -v $(pwd)/user.yaml:/milvus/configs/user.yaml \ -p 19530:19530 \ -p 9091:9091 \ -p 2379:2379 \ --health-cmd="curl -f http://localhost:9091/healthz" \ --health-interval=30s \ --health-start-period=90s \ --health-timeout=20s \ --health-retries=3 \ --memory="4g" \ # New memory limit --cpus="2.0" \ # New CPU limit milvusdb/milvus:v2.5.11 \ milvus run standalone 1> /dev/nullУбедитесь, что сохраненные данные находятся в той же папке, что и сценарий
standalone_embed.sh, и запустите сценарий следующим образом:sudo bash standalone_embed.sh startЗапустите
docker stats milvus-standalone, чтобы просмотреть количество процессора и памяти, выделенных экземпляру Milvus после масштабирования. Результат должен быть похож на следующий:CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 7aea450f87ce milvus-standalone 7.52% 210.9MiB / 4GiB 5.15% 1.05kB / 0B 610kB / 8.19kB 29
Масштабирование экземпляров, развернутых с помощью Docker Compose
Чтобы масштабировать работающий экземпляр Milvus, необходимо остановить его, удалить стек контейнеров и развернуть экземпляр заново с новыми настройками и сохраненными данными.
Конкретная процедура выглядит следующим образом:
Запустите
docker stats milvus-standalone, чтобы просмотреть процессор и память, выделенные экземпляру Milvus. Результат должен быть похож на следующий:CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 917da667f2ff milvus-standalone 6.10% 171.8MiB / 3.886GiB 4.32% 1.57kB / 0B 1.01GB / 1.79MB 31В выводе команды вы можете найти текущее использование ресурсов экземпляра Milvus.
Остановите и удалите стек контейнеров.
$ docker compose downНайдите конфигурационный файл
docker-compose.yml, найдите раздел standalone и добавьте ограничения на ресурсы.... standalone: container_name: milvus-standalone image: milvusdb/milvus:v2.5.8 command: ["milvus", "run", "standalone"] deploy: resources: limits: cpus: "2" # new cpu limits memory: 4G # new memory limits security_opt: - seccomp:unconfined environment: ETCD_ENDPOINTS: etcd:2379 MINIO_ADDRESS: minio:9000 volumes: - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvus healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"] interval: 30s start_period: 90s timeout: 20s retries: 3 ports: - "19530:19530" - "9091:9091" depends_on: - "etcd" - "minio"Убедитесь, что сохраненные данные доступны, и запустите
docker composeследующим образом:docker compose up -dЗапустите
docker stats milvus-standalone, чтобы посмотреть количество CPU и памяти, выделенное экземпляру Milvus после масштабирования. Результат должен быть похож на следующий:CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 7aea450f87ce milvus-standalone 7.52% 210.9MiB / 4GiB 5.15% 1.05kB / 0B 610kB / 8.19kB 29