Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 10 additions & 4 deletions src/dvsim/instrumentation/resources.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,15 @@ class ResourceSchedulerFragment(SchedulerFragment):
"""Instrumented metrics about the scheduler reported by the `ResourceInstrumentation`."""

# Scheduler / DVSim process overhead
scheduler_rss_bytes: int | None = None
scheduler_max_rss_bytes: int | None = None
scheduler_avg_rss_bytes: int | None = None
scheduler_vms_bytes: int | None = None
scheduler_cpu_percent: float | None = None
scheduler_cpu_time: float | None = None

# System-wide metrics
sys_rss_bytes: int | None = None
sys_max_rss_bytes: int | None = None
sys_avg_rss_bytes: int | None = None
sys_swap_used_bytes: int | None = None
sys_cpu_percent: float | None = None
sys_cpu_per_core: list[float] | None = None
Expand Down Expand Up @@ -138,6 +140,7 @@ def __init__(self, sample_interval: float = 0.5) -> None:
self._scheduler_sum_rss = 0
self._scheduler_max_rss = 0
self._scheduler_sum_vms = 0
self._sys_sum_rss = 0
self._sys_max_rss = 0
self._sys_max_swap = 0

Expand Down Expand Up @@ -193,6 +196,7 @@ def _sampling_loop(self) -> None:
# Update system-wide metrics
self._sys_max_swap = max(self._sys_max_swap, psutil.swap_memory().used)
self._sys_max_rss = max(self._sys_max_rss, sys_rss)
self._sys_sum_rss += sys_rss
self._sys_sum_cpu += sys_cpu
if self._num_cores is not None:
self._sys_sum_cpu_per_core = [
Expand Down Expand Up @@ -250,11 +254,13 @@ def build_report_fragments(self) -> InstrumentationFragments | None:
vms_bytes = None

scheduler_frag = ResourceSchedulerFragment(
scheduler_rss_bytes=self._scheduler_max_rss,
scheduler_avg_rss_bytes=self._scheduler_sum_rss / self._sample_count,
scheduler_max_rss_bytes=self._scheduler_max_rss,
scheduler_vms_bytes=vms_bytes,
scheduler_cpu_percent=self._scheduler_sum_cpu / self._sample_count,
scheduler_cpu_time=scheduler_cpu_time,
sys_rss_bytes=self._sys_max_rss,
sys_max_rss_bytes=self._sys_max_rss,
sys_avg_rss_bytes=self._sys_sum_rss / self._sample_count,
sys_cpu_percent=self._sys_sum_cpu / self._sample_count,
sys_cpu_per_core=sys_cpu_per_core,
sys_swap_used_bytes=self._sys_max_swap,
Expand Down
Loading