[Engine] Freeze GC after server warmup (#34999)

Co-authored-by: Jialin Ouyang <Jialin.Ouyang@gmail.com>
This commit is contained in:
Lianmin Zheng
2026-08-16 22:41:36 -07:00
committed by GitHub
co-authored by Jialin Ouyang
parent eb61cb2823
commit 9be3044b9c
@@ -2331,6 +2331,25 @@ def _execute_server_warmup(server_args: ServerArgs):
return success
def _freeze_gc_after_server_warmup(server_args: ServerArgs):
# Freeze GC after server warmup so static objects skip future GC gen2 collection.
# Use /freeze_gc to freeze scheduler and detokenizer as well.
freeze_key = server_args.admin_api_key or server_args.api_key
freeze_headers = {}
if freeze_key:
freeze_headers["Authorization"] = f"Bearer {freeze_key}"
try:
res = requests.post(
server_args.url() + "/freeze_gc",
headers=freeze_headers,
timeout=10,
verify=server_args.ssl_verify(),
)
res.raise_for_status()
except requests.exceptions.RequestException:
logger.warning("post-warmup freeze_gc failed", exc_info=True)
def _wait_and_warmup(
server_args: ServerArgs,
launch_callback: Optional[Callable[[], None]] = None,
@@ -2354,6 +2373,8 @@ def _wait_and_warmup(
else:
_global_state.tokenizer_manager.server_status = ServerStatus.Up
_freeze_gc_after_server_warmup(server_args)
# The server is ready for requests
logger.info("The server is fired up and ready to roll!")