View Source Erlang Top
Introduction
Erlang Top, etop
, is a tool for presenting information about Erlang processes
similar to the information presented by top
in UNIX.
Getting Started
Start Erlang Top in either of the following ways:
- Use script
etop
. - Use batch file
etop.bat
, for example,etop -node tiger@durin
.
Output
The output from Erlang Top is as follows:
========================================================================================
tiger@durin 13:40:32
Load: cpu 0 Memory: total 1997 binary 33
procs 197 processes 0 code 173
runq 135 atom 1002 ets 95
Pid Name or Initial Func Time Reds Memory MsgQ Current Function
----------------------------------------------------------------------------------------
<127.23.0> code_server 0 59585 78064 0 gen_server:loop/6
<127.21.0> file_server_2 0 36380 44276 0 gen_server:loop/6
<127.2.0> erl_prim_loader 0 27962 3740 0 erl_prim_loader:loop
<127.9.0> kernel_sup 0 6998 4676 0 gen_server:loop/6
<127.17.0> net_kernel 62 6018 3136 0 gen_server:loop/6
<127.0.0> init 0 4156 4352 0 init:loop/1
<127.16.0> auth 0 1765 1264 0 gen_server:loop/6
<127.18.0> inet_tcp_dist:accept 0 660 1416 0 prim_inet:accept0/2
<127.5.0> application_controll 0 569 6756 0 gen_server:loop/6
<127.137.0> net_kernel:do_spawn_ 0 553 5840 0 dbg:do_relay_1/1
========================================================================================
The header includes some system information:
Load
cpu
-Runtime/Wallclock
, that is, the percentage of time where the node has been active.procs
- The number of processes on the node.runq
- The number of processes that are ready to run.
Memory
- The memory allocated by the node in kilobytes.
For each process the following information is presented:
Time
- The runtime for the process, that is, the time that the process has been scheduled in.Reds
- The number of reductions executed on the process.Memory
- The size of the process in bytes, obtained by a call toprocess_info(Pid,memory)
.MsgQ
- The length of the message queue for the process.
Note
Time and Reds can be presented as accumulated values or as values since the last update.
Configuration
All configuration parameters can be set at start by adding -OptName Value
to
the command line, for example:
% etop -node tiger@durin -setcookie mycookie -lines 15
A list of all valid Erlang Top configuration parameters is available in module
etop
.
The parameters lines
, interval
, accumulate
, and sort
can be changed
during runtime with function etop:config/2
.
Example:
Change configuration parameter lines
with text-based presentation. Before the
change, 10 lines are presented as follows:
========================================================================================
tiger@durin 10:12:39
Load: cpu 0 Memory: total 1858 binary 33
procs 191 processes 0 code 173
runq 2 atom 1002 ets 95
Pid Name or Initial Func Time Reds Memory MsgQ Current Function
----------------------------------------------------------------------------------------
<127.23.0> code_server 0 60350 71176 0 gen_server:loop/6
<127.21.0> file_server_2 0 36380 44276 0 gen_server:loop/6
<127.2.0> erl_prim_loader 0 27962 3740 0 erl_prim_loader:loop
<127.17.0> net_kernel 0 13808 3916 0 gen_server:loop/6
<127.9.0> kernel_sup 0 6998 4676 0 gen_server:loop/6
<127.0.0> init 0 4156 4352 0 init:loop/1
<127.18.0> inet_tcp_dist:accept 0 2196 1416 0 prim_inet:accept0/2
<127.16.0> auth 0 1893 1264 0 gen_server:loop/6
<127.43.0> ddll_server 0 582 3744 0 gen_server:loop/6
<127.5.0> application_controll 0 569 6756 0 gen_server:loop/6
========================================================================================
Function etop:config/2
is called to change the number of showed lines to 5:
> etop:config(lines,5).
ok
After the change, 5 lines are presented as follows:
(etop@durin)2>
========================================================================================
tiger@durin 10:12:44
Load: cpu 0 Memory: total 1859 binary 33
procs 192 processes 0 code 173
runq 2 atom 1002 ets 95
Pid Name or Initial Func Time Reds Memory MsgQ Current Function
----------------------------------------------------------------------------------------
<127.17.0> net_kernel 183 70 4092 0 gen_server:loop/6
<127.335.0> inet_tcp_dist:do_acc 141 22 1856 0 dist_util:con_loop/9
<127.19.0> net_kernel:ticker/2 155 6 1244 0 net_kernel:ticker1/2
<127.341.0> net_kernel:do_spawn_ 0 0 5840 0 dbg:do_relay_1/1
<127.43.0> ddll_server 0 0 3744 0 gen_server:loop/6
========================================================================================
Print to File
At any time, the current Erlang Top display can be dumped to a text file with
function etop:dump/1
.
Stop
To stop Erlang Top, use function etop:stop/0
.