Переменные среды
GPUStack поддерживает различные переменные среды для настройки.
Большинство параметров командной строки также можно задать с помощью переменных среды с префиксом GPUSTACK_ и в верхнем регистре (например, --data-dir можно установить с помощью GPUSTACK_DATA_DIR).
Полный список параметров командной строки, которые можно установить в качестве переменных среды, см. в Справочнике по CLI. Здесь это обсуждаться не будет.
Приоритетный порядок
Значения конфигурации применяются в следующем порядке приоритета (от самого высокого к самому низкому):
- Аргументы командной строки
- Переменные среды
- Файл конфигурации.
- Значения по умолчанию
Это означает, что аргументы командной строки всегда будут переопределять переменные среды, а переменные среды будут переопределять значения в файле конфигурации.
Переменные среды ядра 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 | Рабочий и Модель |
Пример использования
При развертывании модели перейдите к Дополнительные параметры > Переменные среды и добавьте:
Скрипт обслуживающей команды автоматически обрабатывает:
- Установка дополнительных пакетов 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 |