Support configuring the request limit per receiving poll (#14076)
Co-authored-by: Peng Wang <peng_wang@linux.alibaba.com> Co-authored-by: Feng Su <225349073+sufeng-buaa@users.noreply.github.com>
This commit is contained in:
@@ -178,6 +178,7 @@ class Envs:
|
||||
# Scheduler: others:
|
||||
SGLANG_EMPTY_CACHE_INTERVAL = EnvFloat(-1) # in seconds. Set if you observe high memory accumulation over a long serving period.
|
||||
SGLANG_DISABLE_CONSECUTIVE_PREFILL_OVERLAP = EnvBool(False)
|
||||
SGLANG_SCHEDULER_MAX_RECV_PER_POLL = EnvInt(-1)
|
||||
SGLANG_EXPERIMENTAL_CPP_RADIX_TREE = EnvBool(False)
|
||||
|
||||
# Test: pd-disaggregation
|
||||
|
||||
@@ -274,6 +274,7 @@ class Scheduler(
|
||||
self.page_size = server_args.page_size
|
||||
self.enable_hierarchical_cache = server_args.enable_hierarchical_cache
|
||||
self.enable_hicache_storage = server_args.hicache_storage_backend is not None
|
||||
self.max_recv_per_poll = envs.SGLANG_SCHEDULER_MAX_RECV_PER_POLL.get()
|
||||
|
||||
# Distributed rank info
|
||||
self.attn_tp_rank, self.attn_tp_size, self.attn_dp_rank = (
|
||||
@@ -1046,6 +1047,11 @@ class Scheduler(
|
||||
if envs.SGLANG_ENABLE_STRICT_MEM_CHECK_DURING_BUSY.get():
|
||||
self.self_check_during_busy()
|
||||
|
||||
def recv_limit_reached(self, num_recv_reqs: int) -> bool:
|
||||
if self.max_recv_per_poll < 0:
|
||||
return False
|
||||
return num_recv_reqs >= self.max_recv_per_poll
|
||||
|
||||
def recv_requests(
|
||||
self,
|
||||
) -> List[Union[TokenizedGenerateReqInput, TokenizedEmbeddingReqInput, Any]]:
|
||||
@@ -1064,6 +1070,8 @@ class Scheduler(
|
||||
|
||||
while True:
|
||||
try:
|
||||
if self.recv_limit_reached(len(recv_reqs)):
|
||||
break
|
||||
recv_req = self.recv_from_tokenizer.recv_pyobj(zmq.NOBLOCK)
|
||||
except zmq.ZMQError:
|
||||
break
|
||||
@@ -1071,6 +1079,8 @@ class Scheduler(
|
||||
|
||||
while True:
|
||||
try:
|
||||
if self.recv_limit_reached(len(recv_reqs)):
|
||||
break
|
||||
recv_rpc = self.recv_from_rpc.recv_pyobj(zmq.NOBLOCK)
|
||||
except zmq.ZMQError:
|
||||
break
|
||||
|
||||
Reference in New Issue
Block a user