• О Милвусе
  • Начать
  • Концепции
  • Руководство пользователя
  • Импорт данных
  • Инструменты искусственного интеллекта
  • Руководство по администрированию
  • Инструменты
  • Интеграции
  • Учебники
  • Вопросы и ответы
  • API Reference

Масштабирование Milvus Standalone

Milvus Standalone - это серверное развертывание на одной машине. Все компоненты Milvus Standalone упакованы в один образ Docker, что делает развертывание удобным. В этой теме описывается, как масштабировать экземпляр Milvus, работающий в этом режиме.

Предварительные требования

При развертывании Milvus Standalone с помощью Docker или Docker Compose сценарий развертывания (standalone_embed.sh) или файл конфигурации (docker-compose.yml) создает несколько томов и сопоставляет их с каталогами хоста для обеспечения сохранности данных.

Чтобы масштабировать развернутый таким образом экземпляр Milvus, необходимо остановить и удалить существующий контейнер или стек контейнеров, развернуть Milvus Standalone с обновленными параметрами конфигурации и повторно использовать сохраненные данные на хосте для запуска нового экземпляра.

В следующей таблице приведено сопоставление томов между хостом и контейнерами.

Вариант развертывания

Путь к хосту

Путь к контейнеру

Docker

$(pwd)/volumes/milvus

/var/lib/milvus

$(pwd)/embedEtcd.yaml

/milvus/configs/embedEtcd.yaml

$(pwd)/user.yaml

/milvus/configs/user.yaml

Docker Compose

${DOCKER_VOLUME_DIRECTORY:-.}/volumes/etcd(milvus-etcd)

/etcd

${DOCKER_VOLUME_DIRECTORY:-.}/volumes/minio(milvus-minio)

/minio_data

${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus(milvus-standalone)

/var/lib/milvus

Перед выполнением процедур, описанных в этом руководстве, убедитесь, что ваши данные сохраняются в указанных выше путях к хостам.

Масштабирование экземпляров, развернутых с помощью Docker

Чтобы масштабировать работающий экземпляр Milvus, необходимо остановить экземпляр, удалить контейнер и развернуть его заново с новыми настройками и сохраненными данными.

Процедура выглядит следующим образом:

  1. Запустите 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.

  2. Остановите и удалите контейнер.

    $ docker stop milvus-standalone
    $ docker rm milvus-standalone
    
  3. Найдите файл сценария 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
    
  4. Убедитесь, что сохраненные данные находятся в той же папке, что и сценарий standalone_embed.sh, и запустите сценарий следующим образом:

    sudo  bash standalone_embed.sh start
    
  5. Запустите 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, необходимо остановить его, удалить стек контейнеров и развернуть экземпляр заново с новыми настройками и сохраненными данными.

Конкретная процедура выглядит следующим образом:

  1. Запустите 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.

  2. Остановите и удалите стек контейнеров.

    $ docker compose down
    
  3. Найдите конфигурационный файл 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"
    
  4. Убедитесь, что сохраненные данные доступны, и запустите docker compose следующим образом:

    docker compose up -d
    
  5. Запустите 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
    

Попробуйте Managed Milvus бесплатно

Zilliz Cloud работает без проблем, поддерживается Milvus и в 10 раз быстрее.

Начать
Обратная связь

Была ли эта страница полезной?