diff --git a/vllm/utils/gc_utils.py b/vllm/utils/gc_utils.py index 160ac9ac263a9..3436e450a269f 100644 --- a/vllm/utils/gc_utils.py +++ b/vllm/utils/gc_utils.py @@ -68,9 +68,10 @@ class GCDebugger: # Before GC started, record GC start time # and top collected objects self.start_time_ns = time.monotonic_ns() - self.gc_top_collected_objects = _compute_top_gc_collected_objects( - gc.get_objects(generation), self.config.top_objects - ) + if (top_objects := self.config.top_objects) > 0: + self.gc_top_collected_objects = _compute_top_gc_collected_objects( + gc.get_objects(generation), top_objects + ) elif phase == "stop": # After GC finished, Record GC elapsed time and # optionally top collected objects diff --git a/vllm/v1/engine/core.py b/vllm/v1/engine/core.py index 6be19894d332a..8657a95b5e6e7 100644 --- a/vllm/v1/engine/core.py +++ b/vllm/v1/engine/core.py @@ -206,6 +206,8 @@ class EngineCore: # Mark the startup heap as static so that it's ignored by GC. # Reduces pause times of oldest generation collections. freeze_gc_heap() + # If enable, attach GC debugger after static variable freeze. + maybe_attach_gc_debug_callback() def _initialize_kv_caches( self, vllm_config: VllmConfig @@ -645,9 +647,6 @@ class EngineCoreProc(EngineCore): assert addresses.coordinator_input is not None logger.info("Waiting for READY message from DP Coordinator...") - # If enable, attach GC debugger after static variable freeze. - maybe_attach_gc_debug_callback() - # Enable environment variable cache (e.g. assume no more # environment variable overrides after this point) enable_envs_cache()