where are the processes?

Michael McDaniel <>
Sat Apr 22 00:58:17 CEST 2006


SHORT:  etop says 'procs  734506' and 'runq  15902' though I can't
        find the processes

LONG: ...


SYSTEM:

  yaws 1.56 compiled and running on R10B-10 on Linux 

  Everything is started from yaws except for the process
  that the 404 error handler sends messages to.

  one appmod sends/receives messages with a persistent process

  another persistent process does some file monitoring

  a special 404 error handler sends a message to another
  persistent process (started independent of yaws).


  I start yaws thusly:

  /bin/su root -c " /usr/local/bin/yaws -sname yaws_autosys -heart  \
                    -pa /var/yaws/ebin -D -x                        \
                    -erlarg \"-config /var/yaws/ebin/sys.config\"   \
                  "

  and contents of sys.config are

  [{mnesia, [{dir, "/var/yaws/Mnesia.yaws_autosys"}]}].



Everything seems to work fine.  This all runs on a remote machine.
I login to that machine via ssh and run the following:


I have been noticing that, when running etop as

$ erl -sname etop -hidden -s etop -s erlang halt -output text \
      -lines 27 -interval 33 -node ''
  
I am seeing an increasing number of processes and also of 
run queue processes, for example,

========================================================================
                                               20:25:01

Load: cpu      0        Memory:  total      756842    binary        121
      procs  734563              processes       0    code          543
       runq   15736              atom         4626    ets           342

------------------------------------------------------------------------

When first starting, the procs is less than 1000, runq is zero or single
digit count, and total memory is less than ten megabytes.  binary, code,
ets, atom stay about the same.


Now, when I remote shell as follows,

$ erl -sname fu -remsh 
Erlang (BEAM) emulator version 5.4.13 [hipe]

Eshell V5.4.13  (abort with ^G)
()1> erlang:statistics(run_queue).
0
()2>
User switch command
 --> q
$

The zero processes from erlang:statistics/1 has me confused compared to
what I am seeing using erlang:statistics/1 and what etop is showing me.

I am concerned about all these processes I can't find and the large runq
shown by etop.

I can do etop:config(lines, 300) there are less than 300 processes listed;
same for i() from the remote shell.



QUESTIONS:

1) what are the two different run queues from erlang:statistics/1
   and the runq shown by etop?

2) how can I see (via some text mode tool) what the actual processes
   and processes in the runq that etop says exist ?


thanks,

~Michael



More information about the erlang-questions mailing list