Sun::Solaris::Pg - Perl interface to Processor Group kstats
Please see following description for synopsis
User Contributed Perl Documentation pod::Pg(3)
NAME
Solaris::Pg - Perl interface to Processor Group kstats
SYNOPSYS
use Solaris::Pg;
$p = Solaris::Pg->new(-cpudata=> 1, -tags=> 1, -swload=> 1);
@pgs = $p->all();
@pgs_depth = $p->all_depth_first();
@pgs_breadth = $p->all_breadth_first();
@leaves = $p->leaves();
$root = $p->root;
$p->update();
$leaf = $leaves[0];
$name = $p->sh_name($leaf);
@names = $p->sharing_relationships();
@tags = $p->tags($leaf);
$p1 = Solaris::Pg->new(-cpudata=> 1, -tags=> 1, -swload=> 1);
if ($p->has_utilization()) {
$utilization = $p->utilization($p1, $leaf);
$capacity = $p->capacity($p1, $leaf);
$accuracy = $p->accuracy($p1, $leaf);
$tdelta = $p->tdelta($p1);
}
$sw_utilization = $p->sw_utilization($p1, $leaf);)
DESCRIPTION
The Solaris::Pg module provides an interface to the Solaris PG
information available through pg and pg_cpu kstats. The module provides
an object oriented interface.
METHODS
new
Create a new Pg instance. The new() function accepts arguments in the
form of a hash. The following subarguments are supported:
-cpudata
Collect per-CPU data from kstats if this is True.
-tags
Match PGs to physical relationships if this is True.
-swload
Collect software CPU load if this is True.
root
Return ID of the root of Processor Group hierarchy.
all
Return list of all PGs sorted by ID.
all_depth_first()
Return list of all PGs sorted by walking the PG hierarchy depth first,
starting from root.
all_breadth_first()
Return list of all PGs sorted by walking the PG hierarchy breadth
first, starting from root.
cpus(PG)
Return list of all CPUs in the PG specified. The list is sorted by CPU
ID.
generation([PG])
Return the generation number for the given PG. Without arguments,
return the generation number for the whole snapshot. Different
generation number means that PG configuration may have changed.
parent(PG)
Return parent ID or undef if there is no parent.
children(PG)
Return list of children for the PG.
is_leaf(PG)
Returns T iff PG is leaf.
leaves
Returns list of leaf PGs.
level(PG)
Return the numeric level of PG in the hierarchy, starting from root
which has level zero.
sh_name(PG)
Returns sharing name for the PG.
sharing_relationships([PG], ...)
Without any arguments, returns the list of sharing relationships in the
snapshot. Relationships are sorted by the level in the hierarchy If any
PGs are given on the command line, only return sharing relationships
for given PGs, but still keep them sorted.
tags(PG)
Return list of strings describing physical relationships ('core',
'chip') for the given PG.
update()
Update utilization and generation data in the PG snapshot.
has_utilization(PG)
Returns True if given PG hasd data about hardware utilization.
utilization(PGOBJ, PG)
Return numeric utilization for the time interval represented by two PG
objects for the given PG. Utilization is a difference in utilization
value between two snapshots. The given PG must belong to the same
generation in both snapshots. Returns undef if utilization can not be
obtained.
sw_utilization(PGOBJ, PG)
Return numeric software utilization for the time interval represented
by two PG objects for the given PG. Utilization is a difference in
utilization value between two snapshots. The given PG must belong to
the same generation in both snapshots. Returns undef if utilization can
not be obtained. Software utilization is combined CPU load for all CPUs
in the PG. Returns undef if utilization can not be obtained.
sw_utilization(PGOBJ, PG, CPU)
Return utilization for the PG for a given CPU in a given PG.
Utilization is a difference in utilization value between two snapshots.
We can only compare utilization between PGs having the same generation
ID. Returns undef if utilization can not be obtained.
capacity(PGOBJ, PG)
Return numeric capacity for the time interval represented by two PG
objects for the given PG. Note that the actual capacity is the maximum
of all capacities across all PGs of this type.The given PG must belong
to the same generation in both snapshots. Returns undef if capacities
can not be obtained.
accuracy(PGOBJ, PG)
Return accuracy of utilization calculation between two snapshots The
accuracy is determined based on the total time spent running and not
running the counters. If T1 is the time counters were running during
the period and T2 is the time they were turned off, the accuracy is T1
/ (T1 + T2), expressed in percentages.
tdelta(PGOBJ, PG)
Return time interval between two snapshots for the given PG. The time
is expressed in seconds and is a floating-point number.
EXPORT
None by default.
SEE ALSO
pginfo(1), pgstat(1)
perl v5.32.0 2022-06-28 pod::Pg(3)