环境变量#

SGLang 支持多种环境变量,用于配置其运行时行为。本文档提供了一份详尽的列表,并旨在随时间持续更新。

注意:SGLang 使用两种前缀的环境变量:SGL_SGLANG_。这可能是由于历史原因。虽然目前针对不同设置两者都支持,但未来版本可能会将其统一。

通用配置#

环境变量

描述

默认值

SGLANG_USE_MODELSCOPE

启用从 ModelScope(魔搭社区)获取模型

false

SGLANG_HOST_IP

服务器的主机 IP 地址

0.0.0.0

SGLANG_PORT

服务器端口

自动检测

SGLANG_LOGGING_CONFIG_PATH

自定义日志配置路径

未设置

SGLANG_DISABLE_REQUEST_LOGGING

禁用请求日志记录

false

SGLANG_HEALTH_CHECK_TIMEOUT

健康检查超时时间(秒)

20

SGLANG_EPLB_HEATMAP_COLLECTION_INTERVAL

收集每个层和 GPU rank 上选定物理专家数量指标的轮次间隔。0 表示禁用。

0

SGLANG_FORWARD_UNKNOWN_TOOLS

将未知的工具调用转发给客户端,而不是丢弃它们

false (丢弃未知工具)

性能调优#

环境变量

描述

默认值

SGLANG_ENABLE_TORCH_INFERENCE_MODE

控制是否使用 torch.inference_mode

false

SGLANG_ENABLE_TORCH_COMPILE

启用 torch.compile

true

SGLANG_SET_CPU_AFFINITY

启用 CPU 亲和性设置(在 Docker 构建中通常设置为 1

0

SGLANG_ALLOW_OVERWRITE_LONGER_CONTEXT_LEN

允许调度器覆盖更长上下文长度的请求(在 Docker 构建中通常设置为 1

0

SGLANG_IS_FLASHINFER_AVAILABLE

控制 FlashInfer 可用性检查

true

SGLANG_SKIP_P2P_CHECK

跳过 P2P (peer-to-peer) 访问检查

false

SGLANG_CHUNKED_PREFIX_CACHE_THRESHOLD

设置启用分块前缀缓存(chunked prefix caching)的阈值

8192

SGLANG_FUSED_MLA_ENABLE_ROPE_FUSION

在融合多层注意力(Fused MLA)中启用 RoPE 融合

1

SGLANG_DISABLE_CONSECUTIVE_PREFILL_OVERLAP

对连续的预填充(prefill)批次禁用重叠调度

false

SGLANG_SCHEDULER_MAX_RECV_PER_POLL

设置每次轮询的最大请求数,负值表示不限制

-1

SGLANG_DISABLE_FA4_WARMUP

禁用 Flash Attention 4 预热轮次(设置为 1, true, yes, 或 on 以禁用)

false

SGLANG_DATA_PARALLEL_BUDGET_INTERVAL

DPBudget 更新的间隔

1

SGLANG_SCHEDULER_RECV_SKIPPER_WEIGHT_DEFAULT

调度器接收跳过计数器(recv skipper counter)的默认权重值(当 forward 模式不匹配特定模式时使用)。仅在 --scheduler-recv-interval > 1 时生效。计数器累积权重,并在达到间隔阈值时触发请求轮询。

1000

SGLANG_SCHEDULER_RECV_SKIPPER_WEIGHT_DECODE

调度器接收跳过器在 decode forward 模式下的权重增量。配合 --scheduler-recv-interval 使用,以控制解码阶段的轮询频率。

1

SGLANG_SCHEDULER_RECV_SKIPPER_WEIGHT_VERIFY

调度器接收跳过器在 target verify forward 模式下的权重增量。配合 --scheduler-recv-interval 使用,以控制验证阶段的轮询频率。

1

SGLANG_SCHEDULER_RECV_SKIPPER_WEIGHT_NONE

当 forward 模式为 None 时,调度器接收跳过器的权重增量。配合 --scheduler-recv-interval 使用,以在没有特定 forward 模式处于活动状态时控制轮询频率。

1

SGLANG_MM_PRECOMPUTE_HASH

启用多模态数据项(MultimodalDataItem)哈希值的预计算

false

DeepGEMM 配置(高级优化)#

环境变量

描述

默认值

SGLANG_ENABLE_JIT_DEEPGEMM

启用 DeepGEMM 内核的即时(JIT)编译(安装 DeepGEMM 包后,在 NVIDIA Hopper (SM90) 和 Blackwell (SM100) GPU 上默认启用;设置为 "0" 以禁用)

"true"

SGLANG_JIT_DEEPGEMM_PRECOMPILE

启用 DeepGEMM 内核的预编译

"true"

SGLANG_JIT_DEEPGEMM_COMPILE_WORKERS

并行编译 DeepGEMM 内核的工作进程数量

4

SGLANG_IN_DEEPGEMM_PRECOMPILE_STAGE

在 DeepGEMM 预编译脚本期间使用的指示标志

"false"

SGLANG_DG_CACHE_DIR

缓存已编译 DeepGEMM 内核的目录

~/.cache/deep_gemm

SGL_DG_USE_NVRTC

使用 NVRTC(而非 Triton)进行 JIT 编译(实验性)

"0"

SGL_USE_DEEPGEMM_BMM

在批矩阵乘法(BMM)操作中使用 DeepGEMM

"false"

DeepEP 配置#

环境变量

描述

默认值

SGLANG_DEEPEP_BF16_DISPATCH

使用 Bfloat16 进行分发(dispatch)

"false"

SGLANG_DEEPEP_NUM_MAX_DISPATCH_TOKENS_PER_RANK

每个 GPU 上分发 token 的最大数量

"128"

SGLANG_DEEPEP_LL_COMBINE_SEND_NUM_SMS

当启用单批次重叠时,用于 DeepEP 组合(combine)的 SM 数量

"32"

内存管理#

环境变量

描述

默认值

SGLANG_DEBUG_MEMORY_POOL

启用内存池调试

false

SGLANG_CLIP_MAX_NEW_TOKENS_ESTIMATION

为内存规划裁剪最大新 token 数量的估算

4096

SGLANG_DETOKENIZER_MAX_STATES

反词元化器(detokenizer)的最大状态数

基于系统的默认值

SGLANG_ENABLE_TP_MEMORY_INBALANCE_CHECK

启用张量并行(TP)各 rank 间的内存不平衡检查

true

特定模型选项#

环境变量

描述

默认值

SGLANG_USE_AITER

使用 AITER 优化实现

false

SGLANG_MOE_PADDING

启用 MoE 填充(如果值为 1,则将填充大小设置为 128;在 Docker 构建中通常设置为 1

0

SGLANG_CUTLASS_MOE(已弃用)

在 Blackwell GPU 上使用 Cutlass FP8 MoE 内核(已弃用,请使用 –moe-runner-backend=cutlass)

false

量化#

环境变量

描述

默认值

SGLANG_INT4_WEIGHT

启用 INT4 权重量化

false

SGLANG_PER_TOKEN_GROUP_QUANT_8BIT_V2

应用 per-token group 量化内核,带有融合的 silu、mul 以及 masked m

false

SGLANG_FORCE_FP8_MARLIN

即使有其他 FP8 内核可用,也强制使用 FP8 MARLIN 内核

false

SGLANG_FLASHINFER_FP4_GEMM_BACKEND

在 Blackwell GPU 上为 mm_fp4 选择后端

``

SGLANG_NVFP4_CKPT_FP8_GEMM_IN_ATTN

启动 DeepSeek NVFP4 检查点时,将 q_b_proj 从 BF16 量化为 FP8

false

SGLANG_MOE_NVFP4_DISPATCH

为 MoE 分发使用 nvfp4(在 flashinfer_cutlass 或 flashinfer_cutedsl moe runner 后端)

"false"

SGLANG_NVFP4_CKPT_FP8_NEXTN_MOE

启动 DeepSeek NVFP4 检查点时,将 nextn 层的 moe 从 BF16 量化为 FP8

false

SGLANG_ENABLE_FLASHINFER_FP8_GEMM(已弃用)

在 Blackwell GPU 上运行 blockwise fp8 GEMM 时使用 flashinfer 内核。已弃用:请改用 --fp8-gemm-backend=flashinfer_trtllm

false

SGLANG_SUPPORT_CUTLASS_BLOCK_FP8(已弃用)

在 Hopper 或 Blackwell GPU 上运行 blockwise fp8 GEMM 时使用 Cutlass 内核。已弃用:请改用 --fp8-gemm-backend=cutlass

false

分布式计算#

环境变量

描述

默认值

SGLANG_BLOCK_NONZERO_RANK_CHILDREN

控制非零 rank 子进程的阻塞行为

1

SGLANG_IS_FIRST_RANK_ON_NODE

指示当前进程是否为其节点上的第一个 rank

"true"

SGLANG_PP_LAYER_PARTITION

流水线并行(PP)层切分规范

未设置

SGLANG_ONE_VISIBLE_DEVICE_PER_PROCESS

为分布式计算为每个进程设置一个可见设备

false

测试与调试(内部/CI)#

这些变量主要用于内部测试、持续集成(CI)或调试。

环境变量

描述

默认值

SGLANG_IS_IN_CI

指示是否在 CI 环境中运行

false

SGLANG_IS_IN_CI_AMD

指示是否在 AMD CI 环境中运行

0

SGLANG_TEST_RETRACT

启用撤回(retract)解码测试

false

SGLANG_TEST_RETRACT_NO_PREFILL_BS

当启用 SGLANG_TEST_RETRACT 时,如果批次大小超过 SGLANG_TEST_RETRACT_NO_PREFILL_BS,则不执行预填充。

2 ** 31

SGLANG_RECORD_STEP_TIME

记录步进时间用于性能分析

false

SGLANG_TEST_REQUEST_TIME_STATS

测试请求时间统计

false

分析与基准测试#

环境变量

描述

默认值

SGLANG_TORCH_PROFILER_DIR

PyTorch 分析器(profiler)输出目录

/tmp

SGLANG_PROFILE_WITH_STACK

为 PyTorch 分析器设置 with_stack 选项(布尔值,用于捕获堆栈跟踪)

true

SGLANG_PROFILE_RECORD_SHAPES

为 PyTorch 分析器设置 record_shapes 选项(布尔值,用于记录形状)

true

SGLANG_OTLP_EXPORTER_SCHEDULE_DELAY_MILLIS

如果启用了追踪,配置 BatchSpanProcessor.schedule_delay_millis

500

SGLANG_OTLP_EXPORTER_MAX_EXPORT_BATCH_SIZE

如果启用了追踪,配置 BatchSpanProcessor.max_export_batch_size

64

存储与缓存#

环境变量

描述

默认值

SGLANG_WAIT_WEIGHTS_READY_TIMEOUT

等待权重就绪的超时时间

120

SGLANG_DISABLE_OUTLINES_DISK_CACHE

禁用 Outlines 磁盘缓存

true

SGLANG_USE_CUSTOM_TRITON_KERNEL_CACHE

使用 SGLang 自定义的 Triton 内核缓存实现以降低开销(在 CUDA 上自动启用)

false

函数调用 / 工具使用#

环境变量

描述

默认值

SGLANG_TOOL_STRICT_LEVEL

控制工具调用解析和验证的严格级别。
级别 0:关闭 - 不进行严格验证
级别 1:函数严格 - 为所有工具启用结构化标签约束(即使没有工具设置 strict=True
级别 2:参数严格 - 为所有工具强制执行严格的参数验证,将其视为全部设置了 strict=True

0