1scheduler(3)               Erlang Module Definition               scheduler(3)
2
3
4

NAME

6       scheduler - Measure scheduler utilization
7

DESCRIPTION

9       This  module contains utility functions for easier measurement and cal‐
10       culation of scheduler utilization, otherwise obtained from calling  the
11       more primitive statistics(scheduler_wall_time).
12
13       The simplest usage is to call scheduler:utilization(Seconds).
14

DATA TYPES

16       sched_sample()
17
18       sched_type() = normal | cpu | io
19
20       sched_id() = integer()
21
22       sched_util_result() =
23           [{sched_type(), sched_id(), float(), string()} |
24            {total, float(), string()} |
25            {weighted, float(), string()}]
26
27              A list of tuples containing results for individual schedulers as
28              well as aggregated averages. Util is the  scheduler  utilization
29              as  a  floating  point value between 0.0 and 1.0. Percent is the
30              same utilization as a more human readable  string  expressed  in
31              percent.
32
33                {normal, SchedulerId, Util, Percent}:
34                  Scheduler  utilization  of  a  normal  scheduler with number
35                  SchedulerId. Schedulers that are not  online  will  also  be
36                  included. Online schedulers have the lowest SchedulerId.
37
38                {cpu, SchedulerId, Util, Percent}:
39                  Scheduler  utilization  of a dirty-cpu scheduler with number
40                  SchedulerId.
41
42                {io, SchedulerId, Util, Percent}:
43                  Scheduler utilization of a dirty-io  scheduler  with  number
44                  SchedulerId. This tuple will only exist if both samples were
45                  taken with sample_all/0.
46
47                {total, Util, Percent}:
48                  Total utilization of all normal and dirty-cpu schedulers.
49
50                {weighted, Util, Percent}:
51                  Total utilization of all normal  and  dirty-cpu  schedulers,
52                  weighted against maximum amount of available CPU time.
53

EXPORTS

55       sample() -> sched_sample()
56
57              Return  a  scheduler utilization sample for normal and dirty-cpu
58              schedulers.
59
60       sample_all() -> sched_sample()
61
62              Return  a  scheduler  utilization  sample  for  all  schedulers,
63              including dirty-io schedulers.
64
65       utilization(Seconds) -> sched_util_result()
66
67              Types:
68
69                 Seconds = integer() >= 1
70
71              Measure  utilization  for normal and dirty-cpu schedulers during
72              Seconds seconds, and then return the result.
73
74       utilization(Sample) -> sched_util_result()
75
76              Types:
77
78                 Sample = sched_sample()
79
80              Calculate scheduler utilizations for the time interval from when
81              Sample  was  taken and "now". The same as calling scheduler:uti‐
82              lization(Sample, scheduler:sample_all()).
83
84          Note:
85              Scheduler utilization is measured as an  average  value  over  a
86              time interval, calculated as the difference between two samples.
87              To get good useful utilization values at least a couple of  sec‐
88              onds  should  have passed between the two samples. For this rea‐
89              son, you should not do
90
91              scheduler:utilization(scheduler:sample()). % DO NOT DO THIS!
92
93
94              The above example takes two samples in rapid succession and cal‐
95              culates  the  scheduler  utilization between them. The resulting
96              values will probably be more misleading than informative.
97
98              Instead use scheduler:utilization(Seconds) or let some time pass
99              between Sample=scheduler:sample() and scheduler:utilization(Sam‐
100              ple).
101
102
103       utilization(Sample1, Sample2) -> sched_util_result()
104
105              Types:
106
107                 Sample1 = Sample2 = sched_sample()
108
109              Calculates scheduler utilizations for the time interval  between
110              the two samples obtained from calling sample/0 or sample_all/0.
111
112
113
114Ericsson AB                   runtime_tools 1.16                  scheduler(3)
Impressum