feat: send kvmetrics from sglang scheduler (#6721)

This commit is contained in:
zixuanzhang226
2025-06-25 01:57:49 -07:00
committed by GitHub
parent 506a2d5934
commit f3cbd24541
4 changed files with 46 additions and 6 deletions

View File

@@ -1701,6 +1701,9 @@ class PortArgs:
# The ipc filename for rpc call between Engine and Scheduler
rpc_ipc_name: str
# The ipc filename for Scheduler to send metrics
metrics_ipc_name: str
@staticmethod
def init_new(server_args, dp_rank: Optional[int] = None) -> "PortArgs":
port = server_args.port + random.randint(100, 1000)
@@ -1720,6 +1723,7 @@ class PortArgs:
detokenizer_ipc_name=f"ipc://{tempfile.NamedTemporaryFile(delete=False).name}",
nccl_port=port,
rpc_ipc_name=f"ipc://{tempfile.NamedTemporaryFile(delete=False).name}",
metrics_ipc_name=f"ipc://{tempfile.NamedTemporaryFile(delete=False).name}",
)
else:
# DP attention. Use TCP + port to handle both single-node and multi-node.
@@ -1739,9 +1743,9 @@ class PortArgs:
port_base = int(dist_init_port) + 1
if dp_rank is None:
# TokenizerManager to DataParallelController
scheduler_input_port = port_base + 3
scheduler_input_port = port_base + 4
else:
scheduler_input_port = port_base + 3 + 1 + dp_rank
scheduler_input_port = port_base + 4 + 1 + dp_rank
return PortArgs(
tokenizer_ipc_name=f"tcp://{dist_init_host}:{port_base}",
@@ -1749,6 +1753,7 @@ class PortArgs:
detokenizer_ipc_name=f"tcp://{dist_init_host}:{port_base + 1}",
nccl_port=port,
rpc_ipc_name=f"tcp://{dist_init_host}:{port_base + 2}",
metrics_ipc_name=f"tcp://{dist_init_host}:{port_base + 3}",
)