where are the processes?
Michael McDaniel
erlang@REDACTED
Sat Apr 22 18:41:25 CEST 2006
On Sat, Apr 22, 2006 at 11:07:59AM +0200, Rikard Johansson wrote:
>
> Hi,
>
> Note that there is a bug in the output from etop_txt, values are
> printed on the wrong location, i.e. with wrong label.
> The bug existed in at least R10B6.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Gosh, duly noted; and patched. Thank you. Things are now
starting to make more sense to me regarding resource usage.
I do hope the patch gets into the next release.
~Michael
> This patch corrects the problem:
>
>
> 57,59c57,59
> < io:fwrite(Fd,?SYSFORM,
> [Config#opts.node,Clock,Cpu,Tot,NProcs,Procs,
> < RQ,Atom,Bin,Code,Ets]),
> < io:nl(Fd),
> ---
> > io:fwrite(Fd,?SYSFORM, [Config#opts.node,Clock,
> Cpu,Tot,Bin,NProcs,
> > Procs,Code,RQ,Atom,Ets]),
> > io:nl(Fd),
>
> SYSFORM as defined in etop_defs.hrl:
> -define(SYSFORM,
> " ~-72w~10s~n"
> " Load: cpu ~8w Memory: total ~8w binary
> ~8w~n"
> " procs~8w processes~8w code
> ~8w~n"
> " runq ~8w atom ~8w ets
> ~8w~n").
>
> I have previously submitted this patch to erlang-patches, but I have
> not seen if it has made it way into any of the later releases.
>
>
> /Rikard
>
>
>
>
> 22 apr 2006 kl. 06.47 skrev Michael McDaniel:
>
> >
> >On Fri, Apr 21, 2006 at 03:58:17PM -0700, Michael McDaniel wrote:
> >>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 'yaws_autosys@REDACTED'
> >>
> >>I am seeing an increasing number of processes and also of
> >>run queue processes, for example,
> >>
> >>=====================================================================
> >>===
> >>yaws_autosys@REDACTED
> >>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.
> >>
> >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >correction:
> >
> > should be "When first starting ... runq is under one hundred ..."
> >
> >~M
> >
> >
> >>
> >>Now, when I remote shell as follows,
> >>
> >>$ erl -sname fu -remsh yaws_autosys@REDACTED
> >>Erlang (BEAM) emulator version 5.4.13 [hipe]
> >>
> >>Eshell V5.4.13 (abort with ^G)
> >>(yaws_autosys@REDACTED)1> erlang:statistics(run_queue).
> >>0
> >>(yaws_autosys@REDACTED)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
> >
> >--
> >Michael McDaniel
> >Portland, Oregon, USA
> >http://autosys.us
> >+1 503 283 5284
> >
>
--
Michael McDaniel
Portland, Oregon, USA
http://autosys.us
+1 503 283 5284
More information about the erlang-questions
mailing list