From 5dfcd6c20701d2e949a43a619977c17913fbd712 Mon Sep 17 00:00:00 2001 From: Liangsheng Yin Date: Wed, 3 Sep 2025 13:31:38 +0800 Subject: [PATCH] add proctitle for tokenizers (#9952) Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- python/sglang/srt/entrypoints/http_server.py | 4 ++++ python/sglang/srt/managers/multi_tokenizer_mixin.py | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/python/sglang/srt/entrypoints/http_server.py b/python/sglang/srt/entrypoints/http_server.py index b0534641e..1e7afe26b 100644 --- a/python/sglang/srt/entrypoints/http_server.py +++ b/python/sglang/srt/entrypoints/http_server.py @@ -29,6 +29,8 @@ import time from http import HTTPStatus from typing import Any, AsyncIterator, Callable, Dict, List, Optional +import setproctitle + # Fix a bug of Python threading setattr(threading, "_register_atexit", lambda *args, **kwargs: None) @@ -1166,6 +1168,7 @@ def launch_server( 2. Inter-process communication is done through IPC (each process uses a different port) via the ZMQ library. """ if server_args.tokenizer_worker_num > 1: + setproctitle.setproctitle(f"sglang::http_server/multi_tokenizer_router") port_args = PortArgs.init_new(server_args) port_args.tokenizer_worker_ipc_name = ( f"ipc://{tempfile.NamedTemporaryFile(delete=False).name}" @@ -1174,6 +1177,7 @@ def launch_server( server_args=server_args, port_args=port_args ) else: + setproctitle.setproctitle(f"sglang::http_server/tokenizer_manager") tokenizer_manager, template_manager, scheduler_info = _launch_subprocesses( server_args=server_args, ) diff --git a/python/sglang/srt/managers/multi_tokenizer_mixin.py b/python/sglang/srt/managers/multi_tokenizer_mixin.py index 96c4beb13..989b0b9f9 100644 --- a/python/sglang/srt/managers/multi_tokenizer_mixin.py +++ b/python/sglang/srt/managers/multi_tokenizer_mixin.py @@ -23,6 +23,7 @@ import threading from multiprocessing import shared_memory from typing import Dict +import setproctitle import zmq import zmq.asyncio @@ -476,6 +477,9 @@ class MultiTokenizerManager(TokenizerManager, MultiTokenizerMixin): server_args: ServerArgs, port_args: PortArgs, ): + setproctitle.setproctitle( + f"sglang::http_server/multi_tokenizer_manager:{os.getpid()}" + ) # prevent init prefill bootstrapserver again disaggregation_mode = server_args.disaggregation_mode server_args.disaggregation_mode = "null"