环境变量#

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 排名所选物理专家指标的时间间隔(以 pass 为单位)。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(对等)访问检查

false

SGL_CHUNKED_PREFIX_CACHE_THRESHOLD

设置启用分块前缀缓存的阈值

8192

SGLANG_FUSED_MLA_ENABLE_ROPE_FUSION

在融合多头注意力中启用 RoPE 融合

1

SGLANG_DISABLE_CONSECUTIVE_PREFILL_OVERLAP

禁用连续填充批次的重叠调度

false

SGLANG_DISABLE_FA4_WARMUP

禁用 Flash Attention 4 预热轮次(设置为 1trueyeson 可禁用)

false

DeepGEMM 配置(高级优化)#

环境变量

描述

默认值

SGLANG_ENABLE_JIT_DEEPGEMM

启用 DeepGEMM 内核的即时编译

"true"

SGLANG_JIT_DEEPGEMM_PRECOMPILE

启用 DeepGEMM 内核的预编译

"true"

SGLANG_JIT_DEEPGEMM_COMPILE_WORKERS

并行 DeepGEMM 内核编译的 worker 数量

4

SGL_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 进行调度

"false"

SGLANG_MOE_NVFP4_DISPATCH

使用 nvfp4 进行 MoE 调度

"false"

内存管理#

环境变量

描述

默认值

SGLANG_DEBUG_MEMORY_POOL

启用内存池调试

false

SGLANG_CLIP_MAX_NEW_TOKENS_ESTIMATION

为内存规划裁剪最大新 token 估计

4096

SGLANG_DETOKENIZER_MAX_STATES

反序列化器的最大状态数

基于系统的默认值

SGL_DISABLE_TP_MEMORY_INBALANCE_CHECK

禁用跨张量并行等级的内存不平衡检查

未设置(默认启用检查)

模型特定选项#

环境变量

描述

默认值

SGLANG_USE_AITER

使用 AITER 优化实现

false

SGLANG_INT4_WEIGHT

启用 INT4 权重量化

false

SGLANG_MOE_PADDING

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

0

SGLANG_FORCE_FP8_MARLIN

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

false

SGLANG_ENABLE_FLASHINFER_FP8_GEMM

在 Blackwell GPU 上运行块状 fp8 GEMM 时使用 flashinfer 内核

false

SGLANG_FLASHINFER_FP4_GEMM_BACKEND

在 Blackwell GPU 上为 mm_fp4 选择后端

``

SGLANG_SUPPORT_CUTLASS_BLOCK_FP8

在 Hopper 或 Blackwell GPU 上运行块状 fp8 GEMM 时使用 Cutlass 内核

false

SGLANG_CUTLASS_MOE (已弃用)

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

false

分布式计算#

环境变量

描述

默认值

SGLANG_BLOCK_NONZERO_RANK_CHILDREN

控制阻止非零等级子进程

1

SGL_IS_FIRST_RANK_ON_NODE

指示当前进程是否是其节点上的第一等级

"true"

SGLANG_PP_LAYER_PARTITION

流水线并行层分区规范

未设置

SGLANG_ONE_VISIBLE_DEVICE_PER_PROCESS

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

false

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

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

环境变量

描述

默认值

SGLANG_IS_IN_CI

指示是否在 CI 环境中运行

false

SGLANG_IS_IN_CI_AMD

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

0

SGLANG_TEST_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_CI_SMALL_KV_SIZE

在 CI 中使用小的 KV 缓存大小

未设置

性能分析与基准测试#

环境变量

描述

默认值

SGLANG_TORCH_PROFILER_DIR

PyTorch 分析器输出的目录

/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_TOOL_STRICT_LEVEL

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

0