Перейти к содержанию

Переменные среды

GPUStack поддерживает различные переменные среды для настройки.

Большинство параметров командной строки также можно задать с помощью переменных среды с префиксом GPUSTACK_ и в верхнем регистре (например, --data-dir можно установить с помощью GPUSTACK_DATA_DIR).

Полный список параметров командной строки, которые можно установить в качестве переменных среды, см. в Справочнике по CLI. Здесь это обсуждаться не будет.

Приоритетный порядок

Значения конфигурации применяются в следующем порядке приоритета (от самого высокого к самому низкому):

  1. Аргументы командной строки
  2. Переменные среды
  3. Файл конфигурации.
  4. Значения по умолчанию

Это означает, что аргументы командной строки всегда будут переопределять переменные среды, а переменные среды будут переопределять значения в файле конфигурации.

Переменные среды ядра GPUStack

Эти переменные среды обычно используются для интеграции сторонних сервисов.

Столбец Applies to указывает, где должна быть установлена переменная среды:

  • Сервер — применяется к серверу GPUStack.
  • Worker — применяется к работникам GPUStack.
  • Модель — применяется к конфигурациям развертывания модели.

Конфигурация прокси

Переменная
Описание По умолчанию Применяется к
HTTP_PROXY URL-адрес HTTP-прокси. например, http://proxy-server:port (пусто) Сервер и Рабочий
HTTPS_PROXY URL-адрес HTTPS-прокси. например, https://proxy-server:port (пусто) Сервер и Рабочий
NO_PROXY Список хостов, разделенных запятыми, которые необходимо исключить. например, 127.0.0.1,10.0.0.0/8,192.168.0.0/16,172.16.0.0/16,localhost,cluster.local (пусто) Сервер и Рабочий

Hugging Face Hub

Переменная
Описание По умолчанию Применяется к
HF_ENDPOINT Hugging Face Hub конечная точка. например, https://hf-mirror.com (пусто) Сервер и Рабочий
HF_TOKEN Hugging Face Hub токен доступа. (пусто) Сервер и Рабочий

Отладка

Переменная Описание По умолчанию Применяется к
GPUSTACK_DEBUG_ENABLE_TRACEMALLOC Включить отслеживание выделения памяти Python при запуске. Не зависит от --debug; отслеживание увеличивает нагрузку на CPU и расход памяти. После изменения требуется перезапуск GPUStack. false Server и Worker

Конфигурация базы данных

Переменная Описание По умолчанию Применяется к
GPUSTACK_DB_ECHO Включить ведение журнала запросов к базе данных. false Сервер
GPUSTACK_DB_POOL_SIZE Размер пула подключений к базе данных. 30 Сервер
GPUSTACK_DB_MAX_OVERFLOW Максимальное переполнение пула соединений с базой данных. 20 Сервер
GPUSTACK_DB_POOL_TIMEOUT Тайм-аут пула подключений к базе данных в секундах. 30 Сервер
GPUSTACK_DB_POOL_RECYCLE Время перезапуска соединения с базой данных в секундах. 1800 Сервер

Конфигурация сети

Переменная Описание По умолчанию Применяется к
GPUSTACK_PROXY_TIMEOUT_SECONDS Абсолютный предел запроса на вывод через прокси, в секундах. 1800 Сервер и Рабочий
GPUSTACK_PROXY_TTFT_TIMEOUT_SECONDS Остановка ожидания первого фрагмента потокового ответа в секундах. Охватывает очереди и предварительное заполнение, поэтому остается щедрым. 300 Сервер и Рабочий
GPUSTACK_PROXY_STREAM_IDLE_TIMEOUT_SECONDS Максимальный промежуток между частями после начала потокового ответа, в секундах. Никогда не применяется к непотоковому ответу, тело которого приходит только в конце. 60 Сервер и Рабочий
GPUSTACK_PROXY_UPSTREAM_IDLE_TIMEOUT_SECONDS Тайм-аут простоя соединений в пуле upstream-соединений Higress, в секундах. Не связан с длительностью запроса: закрывает простаивающие соединения, но не ограничивает время выполнения запроса. 3 Сервер
GPUSTACK_TCP_CONNECTOR_LIMIT Ограничение TCP-коннектора HTTP-клиента. 1000 Сервер и Рабочий

Конфигурация кэша сервера

Переменная Описание По умолчанию Применяется к
GPUSTACK_SERVER_CACHE_TTL_SECONDS TTL кэша сервера в секундах. 600 Сервер

Аутентификация и безопасность

Переменная Описание По умолчанию Применяется к
GPUSTACK_JWT_TOKEN_EXPIRE_MINUTES Срок действия токена JWT в минутах. 120 Сервер
GPUSTACK_PROVIDER_TEST_EGRESS_ALLOWLIST Разрешенный список CIDR, IP-адресов и DNS-имен, к которым могут достигать конечные точки провайдера, набирающие базовый URL-адрес, предоставленный вызывающим абонентом (/get-models, /test-model, /test-decision-model). Цель разрешена только в том случае, если ее имя хоста равно или заканчивается одним из имен (точечная граница) или каждый разрешенный адрес попадает в один из CIDR; все остальное, включая базовый URL-адрес, отличный от http(s), отклоняется. Пусто означает отсутствие ограничений. например, api.openai.com,10.0.1.0/24,vllm.internal.corp (пусто) Сервер

Конфигурация шлюза

Переменная Описание По умолчанию Применяется к
GPUSTACK_GATEWAY_PORT_CHECK_INTERVAL Интервал в секундах от GPUStack Сервер проверяет порт прослушивания встроенного шлюза. 2 Сервер
GPUSTACK_GATEWAY_PORT_CHECK_RETRY_COUNT Число повторных попыток GPUStack Сервер проверяет порт прослушивания встроенного шлюза. 300 Сервер
GPUSTACK_GATEWAY_AUTH_RECONCILE_INTERVAL_SECONDS Как часто сервер заново считывает из базы данных набор ключей API, которые шлюз проверяет локально. Удаление в обход ORM не создаёт события, поэтому на публичном маршруте это максимальное время, в течение которого удалённый таким образом ключ может продолжать работать. 30 Сервер
GPUSTACK_GATEWAY_AUTH_ALLOW_CUSTOM_KEYS Может ли пользовательский ключ API (тот, секрет которого предоставил пользователь) аутентифицироваться на шлюзе. Выключено, он продолжает работать, но запрашивает сервер при каждом запросе. Включенный ключ публикуется в конфигурации шлюза, индексируемый несоленым быстрым хешем самого секрета — идентичным во всех развертываниях, поэтому слабый секрет попадает в заранее вычисленную таблицу. custom не налагает никаких требований к энтропии, поэтому отключите этот параметр, когда пользователи выбирают свои собственные ключи — он перечитывается при каждом согласовании, поэтому он удаляет пользовательские ключи, опубликованные, пока он был включен, а не только новые. true Сервер
GPUSTACK_GATEWAY_AUTH_MAX_CR_BYTES Бюджет в байтах для ключевых таблиц и правил общедоступного маршрута, который сервер записывает в плагин аутентификации шлюза. Размер не превышает ограничения объекта etcd ~1,5 МБ; ключи, проходящие мимо него, аутентифицируются через сервер при каждом запросе. 1100000 Сервер
GPUSTACK_GATEWAY_TLS_MIN_PROTOCOL_VERSION Минимальная версия протокола TLS, принимаемая HTTPS-слушателями шлюза. Допустимы TLSv1.0, TLSv1.1, TLSv1.2, TLSv1.3; другие значения отклоняются при запуске. Пустое значение оставляет настройки Higress по умолчанию, допускающие TLS 1.0 и 1.1. Игнорируется в режиме incluster — см. ниже. (пусто) Сервер
GPUSTACK_GATEWAY_TLS_MAX_PROTOCOL_VERSION Самая высокая версия, которую принимают слушатели. Те же ценности и та же область применения; нужен редко. (пусто) Сервер

Конфигурация версии протокола TLS записывается на вход с именем GPUSTACK_GATEWAY_MIRROR_INGRESS_NAME, и каждый входной GPUStack, создаваемый для маршрута LLM, копирует из него границы. В режиме incluster вход принадлежит чарту Helm, поэтому вместо этого установите там server.ingress.tls.minProtocolVersion / maxProtocolVersion — переменные игнорируются, и установка одной из них регистрирует предупреждение. Изменение применяется к этому входу немедленно, а также к существующим маршрутам LLM при их следующем согласовании; перезапустите сервер для немедленного распространения.

Настройки, которые заканчиваются внутри конфигурации плагина шлюза, задаются в файле конфигурации под gateway_plugin, а не здесь, так что каждый механизм имеет одну историю эффективного времени — значение там вступает в силу при следующем согласовании, переменная здесь — при перезапуске. Два ниже перемещены туда и устарели. Они по-прежнему учитываются, поскольку файл конфигурации по умолчанию может переопределять их, поэтому обновление не приводит к автоматическому возврату развертывания, в котором они были установлены; установка любого из них регистрирует предупреждение.

Устаревшая переменная. Описание Заменено на По умолчанию Применяется к
GPUSTACK_HIGRESS_EXT_AUTH_TIMEOUT_MS Тайм-аут вызова аутентификации шлюза в миллисекундах. gateway_plugin.gpustack-ext-auth.config.authz.timeout 30000 Сервер
GPUSTACK_GATEWAY_AI_STATISTICS_PLUGIN_CONTENT_TYPES Типы контента, разделенные запятыми, с учетом использования токенов. gateway_plugin.ai-statistics.config.enable_content_types application/json,text/event-stream Сервер

Конфигурация отслеживания использования

Переменная Описание По умолчанию Применяется к
GPUSTACK_TIMEZONE Часовой пояс IANA для всей платформы (например, Asia/Shanghai) для группирования всех представлений об использовании и отображения времени последней активности/события (см. примечание ниже). Пусто ⇒ использовать местный часовой пояс ОС (TZ / /etc/localtime). Заменяет устаревший GPUSTACK_USAGE_ROLLUP_TIMEZONE (все еще считается псевдонимом). (пусто) Сервер
GPUSTACK_USAGE_ESTIMATED_BYTES_PER_INPUT_TOKEN Делитель байтов на токен, используемый для оценки токенов подсказки, когда отчет шлюза поступает с completed=false и input_token, пуст. Значения по умолчанию предназначены для токенизаторов в стиле GPT, ориентированных на английский язык; уменьшите его (например, 2) для тяжелых рабочих нагрузок CJK. 4 Сервер
GPUSTACK_USAGE_ESTIMATED_TOKENS_PER_OUTPUT_CHUNK Множитель количества токенов на блок, используемый для оценки токенов завершения для незавершенных потоков, когда output_token пусто. 1 Сервер
GPUSTACK_USAGE_DETAILS_RETENTION_MONTHS Срок хранения model_usage_details (таблицы аудита отдельных запросов). Более старые строки (по COALESCE(completed_at, created_at)) переносятся в model_usage_details_archive архиватором, выполняющимся только на ведущем узле. 13 Сервер
GPUSTACK_USAGE_DETAILS_ARCHIVE_CRON Выражение Cron (UTC) для периодической проверки архиватором сведений об использовании. Архиватор также запускается один раз при запуске сервера независимо от этого расписания. 0 3 * * * Сервер
GPUSTACK_USAGE_DETAILS_ARCHIVE_BATCH_SIZE Подсчет строк для каждого пакета при перемещении архива. Меньшие пакеты сокращают количество транзакций в средах, чувствительных к задержке репликации; большие партии сокращают накладные расходы на передачу туда и обратно. 1000 Сервер
GPUSTACK_USAGE_DETAILS_BUFFER_MAX_SIZE Жесткое ограничение буфера сведений о каждом запросе в памяти, сохраняемого между сбросами. Ограничивает рост памяти при постоянных сбоях очистки (отказ базы данных, дрейф схемы). При переполнении самые старые записи удаляются с журналом WARNING. 100000 Сервер
GPUSTACK_RESOURCE_USAGE_TICK_SECONDS Интервал (в секундах) для периодического тика сборщика использования экземпляра, который сбрасывает накопленное время выполнения для длительно работающих экземпляров графического процессора/ЦП, у которых не было событий жизненного цикла с момента последнего тика. 300 Сервер
GPUSTACK_STORAGE_USAGE_TICK_SECONDS Интервал (в секундах) для периодического тика сборщика использования постоянного тома (хранилища). 300 Сервер
GPUSTACK_METERED_USAGE_SEAL_GRACE_SECONDS Дополнительное время ожидания (в секундах) после окончания часового интервала перед его закрытием (финализацией). Интервал закрывается при now >= bucket_end + grace, что позволяет учесть запоздавшие события и расхождение часов; значение должно быть больше интервала периодического сбора данных. Закрытые интервалы неизменяемы. 900 Сервер
GPUSTACK_METERED_USAGE_RETENTION_MONTHS Срок хранения metered_usage (почасовой агрегации использования ресурсов). Закрытые строки старше этого срока переносятся в metered_usage_archive архиватором, выполняющимся только на ведущем узле. Должен существенно превышать горизонт окончательного учёта сборщика (часы). 13 Сервер
GPUSTACK_METERED_USAGE_ARCHIVE_CRON Выражение Cron (UTC) для повторяющейся очистки архиватора с лимитным использованием. Архиватор также запускается один раз при запуске сервера независимо от этого расписания. 0 4 * * * Сервер
GPUSTACK_METERED_USAGE_ARCHIVE_BATCH_SIZE Подсчет строк в пакете для архивных перемещений с дозированным использованием. Меньшие партии сокращают транзакции; большие партии сокращают накладные расходы на передачу туда и обратно. 5000 Сервер
GPUSTACK_USAGE_EVENTS_RETENTION_MONTHS Срок хранения resource_events (журнала жизненного цикла ресурсов и аудита). Более старые строки переносятся в resource_events_archive архиватором, выполняющимся только на ведущем узле. 13 Сервер
GPUSTACK_USAGE_EVENTS_ARCHIVE_CRON Выражение Cron (UTC) для повторяющейся очистки архиватора событий ресурсов. Архиватор также запускается один раз при запуске сервера независимо от этого расписания. 30 3 * * * Сервер
GPUSTACK_USAGE_EVENTS_ARCHIVE_BATCH_SIZE Количество строк для каждого пакета для перемещения архива событий ресурсов. 5000 Сервер
GPUSTACK_USAGE_BREAKDOWN_MAX_NO_PAGINATION_ROWS Максимальное количество сегментов, может вернуться разбивка без разбивки на страницы (page=-1); диаграммы тенденций и экспорт загружают всю серию сразу. Запрос, превышающий это значение, отклоняется (HTTP 400), а не усекается автоматически. Поднимите, чтобы расширить панель приборов, и опустите, чтобы ограничить память. 50000 Сервер

GPUSTACK_TIMEZONE область и летнее время

Этот часовой пояс управляет каждым представлением использования: ежедневным накоплением токенов model_usages, сегментами времени графического процессора/хранилища, а также отображаемым временем последней активности и событиями ресурсов. Для зоны, в которой наблюдается DST, это имеет два последствия, о которых стоит знать:

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

Зоны без летнего времени (UTC, Asia/Shanghai, …) указаны точно и не подвержены влиянию.

Конфигурация кластера

Переменная Описание По умолчанию Применяется к
GPUSTACK_DEFAULT_CLUSTER_KUBERNETES Если кластер по умолчанию создается автоматически, он будет использовать поставщика Kubernetes, когда эта переменная установлена. false Сервер

Конфигурация источника контента

Переменная Описание По умолчанию Применяется к
GPUSTACK_BOOTSTRAP_WITH_EMBEDDED_SOURCES Перенесите каждый тип контента (каталог моделей, серверные части сообщества, встроенные серверные версии, поставщики кэша) во встроенный контент, а не в опубликованные документы, чтобы ничего не загружалось с OTA-сервера. Это задает лишь отправную точку: введенный в эксплуатацию вид впоследствии остается там. Полезно, когда OTA-сервер недоступен или когда контент привязан к установленной версии. false (true в разрабатываемой сборке; пустое значение считается неустановленным) Сервер

Конфигурация планировщика

Переменная Описание По умолчанию Применяется к
GPUSTACK_SCHEDULER_SCALE_UP_PLACEMENT_MAX_SCORE Максимальный балл за размещение, используемый оценщиком размещения планировщика. 100 Сервер
GPUSTACK_SCHEDULER_SCALE_UP_LOCALITY_MAX_SCORE Максимальный балл за местоположение добавляется к баллу за размещение, если файлы модели уже существуют. 5 Сервер
GPUSTACK_SCHEDULER_SCALE_DOWN_STATUS_MAX_SCORE Максимальный вклад оценщика состояния при уменьшении числа реплик (нормализованный). 100 Сервер
GPUSTACK_SCHEDULER_SCALE_DOWN_OFFLOAD_MAX_SCORE Максимальный вклад оценщика переноса слоёв на GPU при уменьшении числа реплик (нормализованный). 10 Сервер
GPUSTACK_SCHEDULER_SCALE_DOWN_PLACEMENT_MAX_SCORE Максимальный вклад оценщика размещения при уменьшении числа реплик (нормализованный). 1 Сервер
GPUSTACK_SCALING_SCHEDULER_INTERVAL Интервал в секундах, через который запланированное масштабирование пересчитывает количество реплик каждой модели из ее окон. Согласование инициируется по уровню, поэтому оно ограничивает только то, как долго граница окна может оставаться незамеченной, но не правильность. Зафиксировано минимум на 1 секунде. 30 Сервер

Планирование многоролевой группы

Эти веса и окна применяются к развертываниям, в которых объявляются роли — дезагрегированная группа предварительного заполнения-декодирования и ее маршрутизатор. Они не влияют на простое развертывание с одной ролью. Каждая оценка ниже представляет собой максимальный вклад в цепочку оценок планировщика; установка значения 0 полностью устраняет это соображение.

Переменная Описание По умолчанию Применяется к
GPUSTACK_SCHEDULER_TOPOLOGY_PROXIMITY_MAX_SCORE Максимальный балл за ступень топологии, которую кандидат-работник разделяет с уже размещенными членами группы, при масштабировании роли или размещении маршрутизатора. Устанавливается выше 100-балльного разброса счетчика размещения, чтобы свободная мощность не могла перевесить целую ступень заявленной топологии. 0 размещает более поздних участников по ресурсу, подходящему отдельно. 150 Сервер
GPUSTACK_SCHEDULER_PAIRING_AFFINITY_MAX_SCORE Максимальный балл за каждого участника противоположной роли, уже находящегося на кандидате-воркере, при масштабировании одной роли разделённой группы — благодаря этому передача KV остаётся на одном хосте. Это нижняя граница, а не фактически используемый вес: планировщик берёт максимум из этого значения и суммы верхних границ остальных оценщиков в цепочке плюс один, чтобы правило «побеждает большинство участников противоположной роли, а ёмкость разрешает ничью» действовало при любом наборе оценщиков. 0 отключает этот критерий и никогда не повышается до нижней границы. 200 Сервер
GPUSTACK_SCHEDULER_SCALE_DOWN_PAIRING_MAX_SCORE Максимальный вклад участников противоположной роли на том же воркере в балл сохранения участника при уменьшении одной роли группы. Определяет удаляемого участника в обычном случае, когда все лишние участники исправны, а баллы состояния и выгрузки равны. Держите его ниже 50 — разницы между «запускается» и «работает» у оценщика состояния. При значении 50 или выше запускающийся участник с соседями обгонит исправного участника без соседей, и планировщик перестанет в первую очередь удалять уже неисправного участника. 0 выбирает удаляемого участника только по состоянию и размещению. 20 Сервер
GPUSTACK_SCHEDULER_DRAIN_WINDOW_SECONDS Как долго член группы с уменьшенным масштабом продолжает работать после выхода из реестра маршрутизатора. Это не период отсрочки процесса: это время, в течение которого необходимо завершить декодирование, все еще извлекающее кэш KV из этого элемента, и движок не имеет возможности дождаться этого момента самостоятельно. 0 удаляется немедленно, что и делает развертывание без ролей. 60 Сервер
GPUSTACK_SCHEDULER_GATHER_BLOCKED_DWELL_SECONDS Как долго член группы MustGather может сидеть без места до отчета о развертывании gather_blocked_scale_out. Ничто не истекает при его прохождении — оно только отделяет «планировщик еще не запущен» от «планировщик запущен, и внутри домена сбора некуда это поместить». При каждом увеличении масштаба расходуется первый из них, поэтому без задержки маркер появится на всех из них. 0 сообщает об отказе, как только появится неразмещенный участник. 120 Сервер

Конфигурация экземпляра графического процессора

Переменная Описание По умолчанию Применяется к
GPUSTACK_GPU_INSTANCE_TRANSITIONING_REQUEUE_INTERVAL Интервал в секундах, с которым контроллер повторно проверяет ещё переходящий между состояниями экземпляр GPU, помещая его обратно в очередь в памяти. Контроллеры финализации PV/PVT используют тот же интервал для повторной проверки ещё завершающегося экземпляра. Изменения уже готовых записей отслеживаются нижестоящим механизмом watch. Минимальное значение — 1 секунда. 15 Сервер
GPUSTACK_GPU_INSTANCE_READY_SWEEP_INTERVAL Интервал в секундах для необязательной редкой повторной проверки экземпляров GPU, уже находящихся в стабильном состоянии Ready. Это резервный механизм для изменений на стороне воркера, которые watch может пропустить при переподключении. 0 (по умолчанию) отключает проверку; включайте её с низкой частотой только при обнаружении таких пропусков. 0 Сервер
GPUSTACK_GPU_INSTANCE_PV_FINALIZING_UNREACHABLE_TOLERANCE Сколько секунд финализатор постоянных томов (PV / PVT) ждёт кластер Kubernetes, у которого недоступны все воркеры, прежде чем отказаться от этого кластера и освободить строку. Кластер, в котором нет ни одного воркера, пропускается сразу — он никогда не держал этот том. Кластер, остающийся недоступным, сначала ожидается, затем освобождается, и его том может остаться в нём. 0 означает отказаться сразу — в отличие от GPUSTACK_GPU_INSTANCE_UNREADABLE_CR_TOLERANCE, у которого 0 снимает ограничение. 1800 Сервер

Конфигурация рабочего и модели

Переменная Описание По умолчанию Применяется к
GPUSTACK_WORKER_HEARTBEAT_INTERVAL Интервал пульса рабочего в секундах. 30 Рабочий
GPUSTACK_WORKER_STATUS_SYNC_INTERVAL Интервал синхронизации статуса работника в секундах. 30 Рабочий
GPUSTACK_WORKER_UNREACHABLE_CHECK_MODE Режим проверки недостижимости работника. Варианты: auto, enabled, disabled. auto отключает проверку, когда количество рабочих > 50. auto Сервер
GPUSTACK_WORKER_HEARTBEAT_GRACE_PERIOD Период отсрочки пульса рабочего в секундах. 150 Сервер
GPUSTACK_MODEL_INSTANCE_RESCHEDULE_GRACE_PERIOD Льготный период переноса расписания экземпляра модели в секундах. 300 Сервер
GPUSTACK_MODEL_EVALUATION_CACHE_MAX_SIZE Максимальный размер кэша оценки модели. 1000 Сервер
GPUSTACK_MODEL_EVALUATION_CACHE_TTL TTL кэша оценки модели в секундах. 3600 Сервер
GPUSTACK_WORKER_ORPHAN_WORKLOAD_CLEANUP_GRACE_PERIOD Льготный период очистки потерянной рабочей нагрузки работника в секундах. 300 Рабочий
GPUSTACK_WORKER_ORPHAN_BENCHMARK_WORKLOAD_CLEANUP_GRACE_PERIOD Льготный период очистки рабочей нагрузки потерянной рабочей нагрузки в секундах. 300 Рабочий
GPUSTACK_WORKER_STATUS_COLLECTION_LOG_SLOW_SECONDS Добавьте журнал отладки для сбора статуса медленного работника, если он превышает это время в секундах. 180 Рабочий
GPUSTACK_MODEL_INSTANCE_HEALTH_CHECK_INTERVAL Интервал проверки работоспособности экземпляра модели в секундах. 3 Рабочий
GPUSTACK_DISABLE_OS_FILELOCK Отключить блокировку файлов ОС. false Рабочий
GPUSTACK_ENABLE_CUDA_MINOR_VERSION_COMPATIBILITY Разрешает устройствам с более ранней минорной версией CUDA запускать образы с более поздней минорной версией. Задаётся для воркера в целом или для отдельной модели; настройка модели имеет приоритет. false Рабочий и Модель
GPUSTACK_RESTART_IN_FLIGHT_LAPSE_SECONDS Как долго POST /models/{id}/restart продолжает отклонять второй запрос с HTTP 409, пока первый перезапуск все еще перестраивается — без защиты второй демонтаж удаляет замены, только что созданные первым. Защита теряет силу сама по себе, так что развертывание, которое никогда не достигает running, все еще может быть перезапущено; измените его размер так, чтобы он выдерживал холодный запуск, который извлекает образ и считывает веса с диска. 900 Сервер
GPUSTACK_SERVE_LOG_MAX_BYTES Лимит размера одного журнала обслуживания модели за один перезапуск, в байтах. После его достижения начало журнала сохраняется, конец ротируется, а между ними помещается маркер. 0 снимает ограничение. 67108864 Рабочий
GPUSTACK_SERVE_LOG_HEAD_BYTES Часть этого лимита, выделенная началу журнала: оно записывается один раз и больше не перезаписывается. Ограничена половиной общего лимита; 0 сохраняет только первую строку. 8388608 Рабочий

Тестовая конфигурация

Переменная Описание По умолчанию Применяется к
GPUSTACK_BENCHMARK_DATASET_SHAREGPT_PATH Путь к набору данных ShareGPT, используемому контейнером бенчмарка, когда dataset_name имеет значение ShareGPT. Образ по умолчанию уже содержит этот набор данных. /workspace/benchmark-runner/sharegpt_data/ShareGPT_V3_unfiltered_cleaned_split.json Рабочий
GPUSTACK_BENCHMARK_REQUEST_TIMEOUT Тайм-аут для каждого запроса теста в секундах. 3600 Рабочий

Конфигурация развертывания модели

Примечание

Эти переменные среды устанавливаются а не при запуске GPUStack. Вместо этого их следует настроить в разделе Дополнительные параметры > Переменные среды при развертывании модели. Они используются для настройки поведения обслуживания модели.

Переменная
Описание По умолчанию Применяется к
GPUSTACK_MODEL_SERVING_COMMAND_SCRIPT_DISABLED Отключить автоматическое выполнение командного сценария обслуживания. Если установлено значение 1 или true, сценарий, выполняющий установку пакета и другие задачи настройки, не будет запускаться. 0 Модель
PYPI_PACKAGES_INSTALL Дополнительные пакеты PyPI для установки в среде обслуживания модели. Несколько пакетов должны быть разделены пробелами. Скрипт будет использовать uv pip install, если доступно, иначе pip install. (пусто) Модель
GPUSTACK_MODEL_RAM_CLAIM Объявленное пользователем требование к оперативной памяти (в байтах) для модели, используемое планировщиком для планирования мощности. (пусто) Модель
GPUSTACK_MODEL_VRAM_CLAIM Объявленное пользователем требование к VRAM (в байтах) для модели, используемое планировщиком для планирования мощности. (пусто) Модель
GPUSTACK_APPLY_QWEN3_RERANKER_TEMPLATES Примените шаблоны реранкинга Qwen3 к телу запроса. См. инструкции в https://huggingface.co/Qwen/Qwen3-Reranker-0.6B.. (пусто) Модель
GPUSTACK_SKIP_MODEL_EVALUATION Пропускает этап оценки или проверки модели во время развертывания. (пусто) Модель
GPUSTACK_SKIP_GPU_COUNT_CHECK Пропускает проверку того, что выбранное вручную количество графических процессоров должно равняться размеру мира параллелизма (tp×pp×dp). Вступает в силу только при выборе графических процессоров вручную; автоматическое планирование никогда не затрагивается. Используйте для ручного развертывания одного узла, где параметры параллелизма намеренно отличаются от выбранного количества графических процессоров. (пусто) Модель
GPUSTACK_DISABLE_METRICS Отключает предоставление и сбор показателей для модели. (пусто) Модель
GPUSTACK_MODEL_HEALTH_CHECK_PATH Указывает путь проверки работоспособности HTTP, предоставляемый моделью. (пусто) Модель
GPUSTACK_MODEL_RUNTIME_UID Контролируйте права доступа пользователей к процессам, запущенным внутри контейнера. (пусто) Модель
GPUSTACK_MODEL_RUNTIME_GID Контролируйте групповые разрешения процессов, запущенных внутри контейнера. (пусто) Модель
GPUSTACK_MODEL_RUNTIME_SHM_SIZE_GIB Размер общей памяти для контейнера в ГиБ. 10.0 Модель
GPUSTACK_MODEL_INFERENCE_HEALTH_CHECK_ENABLED Включите проверку работоспособности вывода для этой модели. Если этот параметр включен, GPUStack периодически отправляет минимальные запросы на вывод, чтобы проверить правильность ответа модели. false Модель
GPUSTACK_MODEL_INFERENCE_HEALTH_CHECK_INTERVAL Интервал проверки работоспособности вывода в секундах (минимум 60). Если в течение этого интервала наблюдается недавний успешный трафик вывода, активная проверка пропускается. 300 Модель
GPUSTACK_MODEL_INFERENCE_HEALTH_CHECK_TIMEOUT Тайм-аут в секундах для каждого запроса периодической проверки работоспособности вывода. По умолчанию 25 для ролей механизма SGLang PD и 15 в противном случае; явное значение имеет приоритет. 15/25 Модель
GPUSTACK_MODEL_INFERENCE_HEALTH_CHECK_FAILURE_THRESHOLD Количество последовательных неудачных проверок работоспособности, прежде чем экземпляр был помечен как неработоспособный. 3 Модель
GPUSTACK_ENABLE_CUDA_MINOR_VERSION_COMPATIBILITY Разрешает устройствам с более ранней минорной версией CUDA запускать образы с более поздней минорной версией. Задаётся для воркера в целом или для отдельной модели; настройка модели имеет приоритет. false Рабочий и Модель

Пример использования

При развертывании модели перейдите к Дополнительные параметры > Переменные среды и добавьте:

1
2
3
4
5
# Install additional packages before model serving starts
PYPI_PACKAGES_INSTALL=torch-audio==2.0.0 transformers==4.30.0

# Disable the serving command script entirely
GPUSTACK_MODEL_SERVING_COMMAND_SCRIPT_DISABLED=1

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

  • Установка дополнительных пакетов PyPI, указанных в PYPI_PACKAGES_INSTALL.
  • Поддержка uv pip и pip для установки пакета.
  • Обработка пользовательских индексов PyPI через PIP_INDEX_URL и PIP_EXTRA_INDEX_URL

Переменные среды выполнения GPUStack

Эти переменные среды используются средой выполнения GPUStack. Обычно используется для настройки поведения серверов вывода, работающих в Docker/Kubernetes.

Их можно использовать только внутри рабочих. Пожалуйста, установите переменные среды в рабочих контейнерах, чтобы они подействовали правильно.

Глобальные переменные

Переменная Описание По умолчанию
GPUSTACK_RUNTIME_LOG_LEVEL Уровень журнала. INFO
GPUSTACK_RUNTIME_LOG_WARNING Включить ведение журнала предупреждений. 0
GPUSTACK_RUNTIME_LOG_EXCEPTION Включить исключения журналирования. 0

Переменные детектора

Переменная Описание По умолчанию
GPUSTACK_RUNTIME_DETECT Используемый детектор. Опции: Авто, AMD, ASCEND, CAMBRICON, HYGON, ILUVATAR, METAX, MTHREADS, NVIDIA. Auto
GPUSTACK_RUNTIME_DETECT_NO_PCI_CHECK Включить проверку PCI во время обнаружения. Полезно для сред WSL. (пусто)
GPUSTACK_RUNTIME_DETECT_PCI_CLASS_PREFIXES Префиксы класса PCI, которые необходимо проверить во время обнаружения. Когда GPUSTACK_RUNTIME_DETECT_NO_PCI_CHECK ложно, детектор проверит, начинается ли класс PCI устройства с любого из заданных префиксов. 02,03,0b,12
GPUSTACK_RUNTIME_DETECT_BACKEND_MAP_RESOURCE_KEY Обнаруженное сопоставление серверной части с ключами ресурсов, например {"cuda": "nvidia.com/devices", "rocm": "amd.com/devices"}. Используется для сопоставления имени серверной части gpustack-runner с соответствующим ключом ресурса. Значения по умолчанию, указанные каждым поставщиком.
GPUSTACK_RUNTIME_DETECT_PHYSICAL_INDEX_PRIORITY Используйте приоритет физического индекса при обнаружении устройств. 1

Специфические переменные детектора ROCm

Примечание

Также применимо к серверным модулям на базе ROCm, таким как Hygon.

Переменная Описание По умолчанию
ROCM_SMI_LIB_PATH Путь к библиотеке ROCm SMI. (пусто)
ROCM_HOME Домашний каталог ROCm. (пусто)
ROCM_PATH Путь ROCm. /opt/rocm
ROCM_CORE_LIB_PATH Путь к основной библиотеке ROCm. (пусто)

Переменные развертывания

Переменная Описание По умолчанию
GPUSTACK_RUNTIME_DEPLOY Используемый развертыватель. Варианты: Авто, Docker, Kubernetes, Подман(Экспериментальный). Auto
GPUSTACK_RUNTIME_DEPLOY_API_CALL_ERROR_DETAIL Включить детализацию ошибки вызова API во время развертывания. 1
GPUSTACK_RUNTIME_DEPLOY_PRINT_CONVERSION Включите печать преобразования во время развертывания. GPUStack Среда выполнения предоставляет унифицированный API определения рабочей нагрузки, который будет преобразован в определенные вызовы API среды выполнения контейнера (например, Docker SDK, Kubernetes API, Podman SDK). Включение этой опции приведет к печати окончательных преобразованных вызовов API в журнале INFO для целей отладки. 0
GPUSTACK_RUNTIME_DEPLOY_ASYNC Включите асинхронное развертывание. 1
GPUSTACK_RUNTIME_DEPLOY_ASYNC_THREADS Количество потоков в пуле потоков. (пусто)
GPUSTACK_RUNTIME_DEPLOY_MIRRORED_NAME Имя развертывателя. (пусто)
GPUSTACK_RUNTIME_DEPLOY_MIRRORED_DEPLOYMENT_IGNORE_ENVIRONMENTS Имена переменных среды, которые следует игнорировать во время зеркального развертывания. (пусто)
GPUSTACK_RUNTIME_DEPLOY_MIRRORED_DEPLOYMENT_IGNORE_VOLUMES Места назначения монтирования томов, которые следует игнорировать во время зеркального развертывания. (пусто)
GPUSTACK_RUNTIME_DEPLOY_DEFAULT_CONTAINER_REGISTRY_USERNAME Имя пользователя для реестра контейнеров по умолчанию. Если образы бегуна GPUStack размещены в реестре контейнеров, требующем доступа с проверкой подлинности, задайте для этой переменной имя пользователя доступа при запуске каждого работника GPUStack (или универсального сервера GPUStack). На практике вместо этого рекомендуется настраивать имя пользователя доступа в реальной среде выполнения контейнера. (пусто)
GPUSTACK_RUNTIME_DEPLOY_DEFAULT_CONTAINER_REGISTRY_PASSWORD Пароль для реестра контейнеров по умолчанию. Если образы бегуна GPUStack размещены в реестре контейнеров, требующем доступа с проверкой подлинности, задайте для этой переменной пароль доступа при запуске каждого работника GPUStack (или универсального сервера GPUStack). На практике вместо этого рекомендуется настраивать пароль доступа в реальной среде выполнения контейнера. (пусто)
GPUSTACK_RUNTIME_DEPLOY_DEFAULT_CONTAINER_NAMESPACE Пространство имен для образов контейнеров бегунов по умолчанию. Если изображения бегунов GPUStack размещены за пределами пространства имен gpustack, например. gpustack-ai, установите для этой переменной значение gpustack-ai. Для многоуровневого пространства имен, например. awesome.com/amazing-group/amazing-subgroup/gpustack-ai, объявите реестр с родительским пространством имен через --system-default-container-registry (или рабочий ключ конфигурации system_default_container_registry, или переменную среды GPUSTACK_SYSTEM_DEFAULT_CONTAINER_REGISTRY), например --system-default-container-registry=awesome.com/amazing-group/amazing-subgroup. gpustack
GPUSTACK_RUNTIME_DEPLOY_IMAGE_PULL_POLICY Политика получения образа для развертывателя (например, Always, IfNotPresent, Never). IfNotPresent
GPUSTACK_RUNTIME_DEPLOY_CDI_SPECS_DIRECTORY Во время развертывания путь к каталогу, содержащему спецификации интерфейса контейнерных устройств (CDI), или каталог для создания спецификаций CDI. /var/run/cdi
GPUSTACK_RUNTIME_DEPLOY_RESOURCE_KEY_MAP_CDI Ручное сопоставление интерфейсов устройств контейнера, которое используется для указания среде выполнения контейнера, какие устройства следует внедрить в контейнер, например, nvidia.com/devices=nvidia.com/gpu;amd.com/devices=amd.com/gpu. Ключ — это ключ ресурса, а значение — ключ интерфейса контейнерного устройства (CDI). Значения по умолчанию, указанные каждым поставщиком.
GPUSTACK_RUNTIME_DEPLOY_RESOURCE_KEY_MAP_RUNTIME_VISIBLE_DEVICES Ручное сопоставление переменных среды видимых устройств среды выполнения, которое используется для указания среде выполнения контейнера, какие устройства следует внедрить в контейнер, например, nvidia.com/devices=NVIDIA_VISIBLE_DEVICES;amd.com/devices=AMD_VISIBLE_DEVICES. Ключ — это ключ ресурса, а значение — имя переменной среды. Значения по умолчанию, указанные каждым поставщиком.
GPUSTACK_RUNTIME_DEPLOY_RESOURCE_KEY_MAP_BACKEND_VISIBLE_DEVICES Ручное сопоставление переменных среды видимых устройств серверной части, которое используется для указания среде выполнения устройств (например, ROCm, CUDA, OneAPI), какие устройства использовать внутри контейнера, например, nvidia.com/devices=CUDA_VISIBLE_DEVICES;amd.com/devices=ROCR_VISIBLE_DEVICES. Ключ — это ключ ресурса, а значение — список имен переменных среды. Значения по умолчанию, указанные каждым поставщиком.
GPUSTACK_RUNTIME_DEPLOY_RUNTIME_VISIBLE_DEVICES_VALUE_UUID Используйте UUID для заданных переменных среды видимых устройств среды выполнения. (пусто)
GPUSTACK_RUNTIME_DEPLOY_BACKEND_VISIBLE_DEVICES_VALUE_ALIGNMENT Включить выравнивание значений для заданных переменных среды видимых устройств серверной части. ASCEND_RT_VISIBLE_DEVICES,NPU_VISIBLE_DEVICES
GPUSTACK_RUNTIME_DEPLOY_CPU_AFFINITY Включите привязку ЦП для развернутых рабочих нагрузок. 0
GPUSTACK_RUNTIME_DEPLOY_NUMA_AFFINITY Включите привязку NUMA для развернутых рабочих нагрузок. Если этот параметр включен, также подразумевается GPUSTACK_RUNTIME_DEPLOY_CPU_AFFINITY. 0

Переменные, специфичные для Docker Deployer

Переменная Описание По умолчанию
GPUSTACK_RUNTIME_DOCKER_HOST Хост для соединения Docker. Используется для переопределения хоста по умолчанию Docker. http+unix:///var/run/docker.sock
GPUSTACK_RUNTIME_DOCKER_PAUSE_IMAGE Изображение контейнера, используемое в качестве контейнера паузы в Docker. gpustack/runtime:pause
GPUSTACK_RUNTIME_DOCKER_UNHEALTHY_RESTART_IMAGE Образ контейнера, используемый для неработоспособного перезапуска контейнера в Docker. gpustack/runtime:health
GPUSTACK_RUNTIME_DOCKER_RESOURCE_INJECTION_POLICY Политика внедрения ресурсов для развертывателя Docker (например, Env, CDI).
Env: внедряет ресурсы с использованием стандартной переменной среды на основе GPUSTACK_RUNTIME_DEPLOY_RESOURCE_KEY_MAP_RUNTIME_VISIBLE_DEVICES.
CDI: Вводит ресурсы с помощью CDI на основе GPUSTACK_RUNTIME_DEPLOY_RESOURCE_KEY_MAP_CDI.
Env
GPUSTACK_RUNTIME_DOCKER_CDI_SPECS_GENERATE Для создания спецификаций CDI во время развертывания при использовании политики внедрения ресурсов CDI требуется наличие GPUSTACK_RUNTIME_DEPLOY_CDI_SPECS_DIRECTORY. Работает только тогда, когда для GPUSTACK_RUNTIME_DOCKER_RESOURCE_INJECTION_POLICY установлено значение CDI. Используя внутренние знания для создания спецификаций CDI для развертывателя, если выходной файл конфликтует с другими инструментами, генерирующими спецификации CDI (например, NVIDIA Container Toolkit), отключите эту функцию и удалите выходной файл вручную. 1

Переменные, специфичные для развертывателя Kubernetes.

Переменная Описание По умолчанию
GPUSTACK_RUNTIME_KUBERNETES_NODE_NAME Имя узла Kubernetes, на котором будут развертываться рабочие нагрузки. (пусто)
GPUSTACK_RUNTIME_KUBERNETES_NAMESPACE Пространство имен Kubernetes для развертывания рабочих нагрузок. default
GPUSTACK_RUNTIME_KUBERNETES_DOMAIN_SUFFIX Суффикс домена для услуг Kubernetes. cluster.local
GPUSTACK_RUNTIME_KUBERNETES_SERVICE_TYPE Тип услуги для услуг Kubernetes. Опции: ClusterIP, NodePort, LoadBalancer. ClusterIP
GPUSTACK_RUNTIME_KUBERNETES_QUORUM_READ Использовать ли чтение кворума для служб Kubernetes. 0
GPUSTACK_RUNTIME_KUBERNETES_DELETE_PROPAGATION_POLICY Политика распространения удаления для ресурсов Kubernetes. Варианты: Foreground, Background, Orphan. Foreground
GPUSTACK_RUNTIME_KUBERNETES_RESOURCE_INJECTION_POLICY Политика внедрения ресурсов для развертывателя Kubernetes. Варианты: Auto, Env, KDP.
Auto: Автоматический выбор политики внедрения ресурсов в зависимости от среды.
Env: внедряет ресурсы с использованием стандартной переменной среды, зависит от базового Container Toolkit, на основе GPUSTACK_RUNTIME_DEPLOY_RESOURCE_KEY_MAP_RUNTIME_VISIBLE_DEVICES.
KDP: Вводит ресурсы с помощью плагина устройства Kubernetes.
Auto
GPUSTACK_RUNTIME_KUBERNETES_KDP_PER_DEVICE_MAX_ALLOCATIONS Максимальное количество выделений для одного устройства в Kubernetes Плагине устройства. 10
GPUSTACK_RUNTIME_KUBERNETES_KDP_DEVICE_ALLOCATION_POLICY Политика распределения устройств для плагина устройства Kubernetes. Опции: Авто, CDI, Конверт, Непрозрачный.
Auto: Автоматический выбор политики распределения устройств в зависимости от среды.
Env: распределяет устройства с помощью переменных среды, видимых во время выполнения, на основе GPUSTACK_RUNTIME_DEPLOY_RESOURCE_KEY_MAP_RUNTIME_VISIBLE_DEVICES; требуется поддержка Container Toolkit.
CDI: выделяет устройства с использованием сгенерированных спецификаций CDI на основе GPUSTACK_RUNTIME_DEPLOY_RESOURCE_KEY_MAP_CDI, что упрощает отладку и устранение неполадок; для существования требуется GPUSTACK_RUNTIME_DEPLOY_CDI_SPECS_DIRECTORY.
Opaque: для распределения используется внутренняя логика, что удобно для развертывания, но сложно устранять неполадки.
Auto
GPUSTACK_RUNTIME_KUBERNETES_KDP_CDI_SPECS_GENERATE Генерировать спецификации CDI во время развертывания, для существования требуется GPUSTACK_RUNTIME_DEPLOY_CDI_SPECS_DIRECTORY. Работает только тогда, когда для GPUSTACK_RUNTIME_KUBERNETES_KDP_DEVICE_ALLOCATION_POLICY установлено значение CDI. Используя внутренние знания для создания спецификаций CDI для развертывателя, если выходной файл конфликтует с другими инструментами, генерирующими спецификации CDI (например, NVIDIA Container Toolkit), отключите эту функцию и удалите выходной файл вручную. 1

Переменные, специфичные для Podman Deployer

Примечание

Развертыватель Podman является экспериментальным и требует версии 4.9 или выше.

Переменная Описание По умолчанию
GPUSTACK_RUNTIME_PODMAN_HOST Хост для подключения Podman. Используется для переопределения хоста Podman по умолчанию. http+unix:///run/podman/podman.sock
GPUSTACK_RUNTIME_PODMAN_PAUSE_IMAGE Изображение контейнера, используемое в качестве контейнера паузы в Podman. По умолчанию такое же, как GPUSTACK_RUNTIME_DOCKER_PAUSE_IMAGE. gpustack/runtime:pause
GPUSTACK_RUNTIME_PODMAN_UNHEALTHY_RESTART_IMAGE Образ контейнера, используемый для неработоспособного перезапуска контейнера в Podman. По умолчанию такое же, как GPUSTACK_RUNTIME_DOCKER_UNHEALTHY_RESTART_IMAGE. gpustack/runtime:health
GPUSTACK_RUNTIME_PODMAN_CDI_SPECS_GENERATE Генерация спецификаций CDI во время развертывания, для существования требуется GPUSTACK_RUNTIME_DEPLOY_CDI_SPECS_DIRECTORY. Используя внутренние знания для создания спецификаций CDI для развертывателя, если выходной файл конфликтует с другими инструментами, генерирующими спецификации CDI (например, NVIDIA Container Toolkit), отключите эту функцию и удалите выходной файл вручную. По умолчанию такое же, как GPUSTACK_RUNTIME_DOCKER_CDI_SPECS_GENERATE. 1