Measure scheduler utilization
This module contains utility functions for easier measurement and
calculation of scheduler utilization, otherwise obtained from calling the
more primitive
statistics(scheduler_wall_time)
.
The simplest usage is to call
scheduler:utilization(Seconds)
.
Types
sched_sample()
sched_type() = normal | cpu | io
sched_id() = integer()
sched_util_result() =
[{sched_type(), sched_id(), float(), string()} |
{total, float(), string()} |
{weighted, float(), string()}]
A list of tuples containing results for individual schedulers
as well as aggregated averages. Util
is the scheduler utilization
as a floating point value between 0.0 and 1.0. Percent
is the
same utilization as a more human readable string expressed in percent.
{normal, SchedulerId, Util, Percent}
SchedulerId
.{cpu, SchedulerId, Util, Percent}
SchedulerId
.{io, SchedulerId, Util, Percent}
SchedulerId
. This tuple will only exist if both samples were
taken with sample_all/0
.{total, Util, Percent}
{weighted, Util, Percent}
Functions
sample() -> sched_sample()
Return a scheduler utilization sample for normal and dirty-cpu schedulers.
sample_all() -> sched_sample()
Return a scheduler utilization sample for all schedulers, including dirty-io schedulers.
Measure utilization for normal and dirty-cpu schedulers during
seconds, and then return the result.
Calculate scheduler utilizations for the time interval from when
was taken and "now". The same as calling
scheduler:utilization(Sample, scheduler:sample_all())
.
utilization(Sample1, Sample2) -> sched_util_result()
Sample1 = Sample2 = sched_sample()
Calculates scheduler utilizations for the time interval between
the two samples obtained from calling
sample/0
or
sample_all/0
.