ObserverWeb.SystemInfo (Observer Web v0.2.7)
View SourceRead-only system snapshot of a node: runtime information, resource counts against their VM
limits, and per-allocator carrier utilization (the observer GUI's System/Memory Allocators
tabs, observer_cli's Home/System panes).
Everything is fetched through stdlib-only RPCs (:erlang.system_info/1 and friends), so it
works against any node in the cluster regardless of the observer_web version running there.
Summary
Functions
Reduces one allocator's :erlang.system_info({:allocator_sizes, alloc}) instance list into
total block/carrier sizes and a utilization percentage.
Carrier utilization per alloc_util allocator: how much of the memory reserved in carriers is
actually occupied by blocks. Low utilization on a busy allocator points at fragmentation - the
same signal recon_alloc and the observer GUI's Memory Allocators tab expose.
Resource counts against their configured VM limits.
General runtime information for the node.
Types
@type allocator() :: %{ name: atom(), blocks_size: non_neg_integer(), carriers_size: non_neg_integer(), utilization_percent: float() | nil }
@type limit() :: %{ name: String.t(), count: non_neg_integer(), limit: pos_integer(), percent: float() }
Functions
Reduces one allocator's :erlang.system_info({:allocator_sizes, alloc}) instance list into
total block/carrier sizes and a utilization percentage.
Sizes are reported as {:size, current, last_max, max} (or {:size, current} on some
emulator types), under mbcs/sbcs (multi/single-block carriers) per scheduler instance -
anything with an unexpected shape is skipped rather than crashing the caller.
Carrier utilization per alloc_util allocator: how much of the memory reserved in carriers is
actually occupied by blocks. Low utilization on a busy allocator points at fragmentation - the
same signal recon_alloc and the observer GUI's Memory Allocators tab expose.
Resource counts against their configured VM limits.
General runtime information for the node.