scheduler - Measure scheduler utilization
Please see following description for synopsis
scheduler(3) Erlang Module Definition scheduler(3) NAME scheduler - Measure scheduler utilization DESCRIPTION This module contains utility functions for easier measurement and cal- culation of scheduler utilization, otherwise obtained from calling the more primitive statistics(scheduler_wall_time). The simplest usage is to call scheduler:utilization(Seconds). DATA 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}: Scheduler utilization of a normal scheduler with number SchedulerId. Schedulers that are not online will also be included. Online schedulers have the lowest SchedulerId. {cpu, SchedulerId, Util, Percent}: Scheduler utilization of a dirty-cpu scheduler with number SchedulerId. {io, SchedulerId, Util, Percent}: Scheduler utilization of a dirty-io scheduler with number SchedulerId. This tuple will only exist if both samples were taken with sample_all/0. {total, Util, Percent}: Total utilization of all normal and dirty-cpu schedulers. {weighted, Util, Percent}: Total utilization of all normal and dirty-cpu schedulers, weighted against maximum amount of available CPU time. EXPORTS 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. utilization(Seconds) -> sched_util_result() Types: Seconds = integer() >= 1 Measure utilization for normal and dirty-cpu schedulers during Seconds seconds, and then return the result. utilization(Sample) -> sched_util_result() Types: Sample = sched_sample() Calculate scheduler utilizations for the time interval from when Sample was taken and "now". The same as calling scheduler:uti- lization(Sample, scheduler:sample_all()). Note: Scheduler utilization is measured as an average value over a time interval, calculated as the difference between two samples. To get good useful utilization values at least a couple of sec- onds should have passed between the two samples. For this rea- son, you should not do scheduler:utilization(scheduler:sample()). % DO NOT DO THIS! The above example takes two samples in rapid succession and cal- culates the scheduler utilization between them. The resulting values will probably be more misleading than informative. Instead use scheduler:utilization(Seconds) or let some time pass between Sample=scheduler:sample() and scheduler:utilization(Sam- ple). utilization(Sample1, Sample2) -> sched_util_result() Types: Sample1 = Sample2 = sched_sample() Calculates scheduler utilizations for the time interval between the two samples obtained from calling sample/0 or sample_all/0. Ericsson AB runtime_tools 1.17 scheduler(3)