archivebox.services.resource_admission

Admission signals, not estimates of how much RAM an extractor will need.

Module Contents

Classes

ResourceAdmission

Functions

zram_swap_identifiers

Return zram block names and major:minor IDs known to sysfs.

swap_source_identifiers

Identify a swap source by its visible name and, for block devices, ID.

disk_backed_swap_free_bytes

Sum free active swap except zram, whose capacity is already backed by RAM.

host_swap_free_bytes

Use only independently backed swap as extra capacity on Linux.

Data

RESOURCE_RECHECK_SECONDS

MEMORY_FULL_STALL_PERCENT

ZRAM_DEVICE_NAME

resource_admission

API

archivebox.services.resource_admission.RESOURCE_RECHECK_SECONDS[source]

2.0

archivebox.services.resource_admission.MEMORY_FULL_STALL_PERCENT[source]

10.0

archivebox.services.resource_admission.ZRAM_DEVICE_NAME[source]

‘compile(…)’

archivebox.services.resource_admission.zram_swap_identifiers(sys_block: pathlib.Path = Path('/sys/block')) → set[str][source]

Return zram block names and major:minor IDs known to sysfs.

archivebox.services.resource_admission.swap_source_identifiers(filename: str) → set[str][source]

Identify a swap source by its visible name and, for block devices, ID.

archivebox.services.resource_admission.disk_backed_swap_free_bytes(swaps: str, zram_identifiers: set[str]) → int[source]

Sum free active swap except zram, whose capacity is already backed by RAM.

archivebox.services.resource_admission.host_swap_free_bytes(meminfo_swap_free: int) → int[source]

Use only independently backed swap as extra capacity on Linux.

class archivebox.services.resource_admission.ResourceAdmission[source]

Initialization

static cgroup_paths() → list[pathlib.Path][source]
snapshot_limit(configured: int) → int[source]
additional_snapshot_slots(configured: int, active: int, observed_cost: int | None) → int[source]
static slots_for_headroom(configured: int, active: int, observed_cost: int, available: int) → int[source]
memory_headroom() → tuple[int, int] | None[source]

Return workload RAM+swap usage and effective available headroom.

observe_memory_stalls(source: str, total: int, avg10: float, sampled_at: float) → bool[source]
memory_pressure() → str | None[source]
archivebox.services.resource_admission.resource_admission[source]

‘ResourceAdmission(…)’