Skip to content

Оптимизация изображений

Основная информация

В коробочной версии Эсборд начиная с версии 2025.1 появилась оптимизация изображений на досках, при котором исходное изображение преобразуется в несколько изображений различной степени сжатия.

Сам процесс оптимизации изображений может приводить к значительной нагрузке на систему, поэтому по умолчанию:

  • оптимизация включена для новых изображений
    • загруженных вручную
    • загруженных в процессе импорта из Miro
    • загруженных в процессе восстановления из бэкапа Miro
    • загруженных при добавлении шаблона на доску
    • загруженных при добавлении pdf на доску
  • оптимизация выключена
    • для старых изображений
    • для изображений на досках, импортированных из облака Эсборд (они считаются старыми)

Чтобы включить оптимизацию для старых изображений, нужно добавить контейнеру образа sboard переменную окружения ENABLE_LEGACY_BOARD_OPTIMIZATION со значением true.

По умолчанию процесс оптимизации происходит в 1 или 2 очередях в зависимости от того, указана ли переменная ENABLE_LEGACY_BOARD_OPTIMIZATION: одна очередь на новые изображения, одна очередь на старые.

Информация про Redis

Сервис использует Redis для очереди задач на обработку изображений, поэтому в случае попадания большого числа изображений в очередь может произойти ухудшение работоспособности всей системы.

В связи с этим в инфраструктуру рекомендуется добавить отдельный Redis для обработки изображений.

Соответствующие переменные окружения для контейнера образа sboard:

  1. REDIS_IMG_HOST - хост (по умолчанию - значение из REDIS_HOST или предустановленное)
  2. REDIS_IMG_PORT - порт (по умолчанию - значение из REDIS_PORT или предустановленное)
  3. REDIS_IMG_PASS - пароль (по умолчанию - значение из REDIS_PASS или предустановленное)
Пример для Docker-compose standalone
yml
version: "3.3"
services:
  postgres:
    image: "${DOCKER_REGISTRY}/postgres:${DOCKER_IMAGE_TAG}"
    restart: "always"
    environment:
      PGDATA: /data
    volumes:
      - pg_data:/data

  minio:
    image: "${DOCKER_REGISTRY}/minio:${DOCKER_IMAGE_TAG}"
    restart: "always"
    volumes:
      - minio_data:/data

  redis:
    image: "${DOCKER_REGISTRY}/redis:${DOCKER_IMAGE_TAG}"
    restart: "always"

  redis-images: 
    image: "${DOCKER_REGISTRY}/redis:${DOCKER_IMAGE_TAG}"
    restart: "always"

  sboard:
    image: "${DOCKER_REGISTRY}/sboard:${DOCKER_IMAGE_TAG}"
    restart: "always"
    ports:
      - 80:80
      - 443:443
    volumes:
      - "./certs:/certs"
    environment:
      DOMAIN_NAME: "${DOMAIN_NAME}"
      REDIS_IMG_HOST: "redis-images"
    depends_on:
      - minio
      - redis
      - postgres

volumes:
  minio_data:
  pg_data:

Дополнительные настройки

Процесс оптимизации можно ускорить за счёт увеличения числа очередей с помощью следующих переменных окружения:

  1. SINGLE_IMAGE_WORKER_CONCURRENCY - количество очередей обработки новых изображений (по умолчанию - 1)
  2. BATCH_IMAGE_WORKER_CONCURRENCY - количество очередей обработки старых изображений (по умолчанию - 1)

Внимание

Увеличение числа очередей увеличит потенциальную нагрузку на систему, поэтому в этом случае рекомендуется также увеличить CPU и RAM рабочему серверу.