Code Monkey home page Code Monkey logo

entop's People

Contributors

bobergj avatar djnym avatar jwheare avatar mazenharake avatar petrohi avatar spawnthink avatar systra avatar ten0s avatar vagabond avatar yrashk avatar zaa avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

entop's Issues

badmatch when remote node goes down

=ERROR REPORT==== 9-Sep-2010::13:27:55 ===
Error in process <0.40.0> on node 'entop_remote@Jonass-MacBook' with exit value: {{badmatch,{2451,{badrpc,nodedown}}},[{entop_view,update_screen,1},{entop_view,loop,2}]}

entop was started as follows:
./entop NODENAME -sname entop_remote -setcookie cookie

How to reproduce:
call init:restart() in the monitored node

process_info call in entop_collector causes out of memory

The entop_collector:get_data function calls erlang:process_info on each process. This is problematic, because the resulting process info proplist contains the 'messages' entry, with all the messages in the process message queue.
When using entop against a node which has a message leak (a message queue building up) one of the following to things can happen:

  • Starting entop causes the beam to crash due to an out of memory exception
  • The net_kernel heartbeat times out while transferring the term, causing the communication between entop and the node to break
    Note that this only happens when a process queue contains several gigabytes of data (our servers have 48 GB of memory).

The entop_collector should use erlang:process_info/2 instead of process_info/1, not including the 'messages' option.

crash when erlang:memory(processes_used) returns 0 on target node

Entop crashes almost immediately after starting:
=ERROR REPORT==== 21-Feb-2011::16:46:09 ===
Error in process <0.40.0> on node 'test@dator' with exit value: {if_clause,[{entop_format,mem2str,1},{entop_format,header,2},{entop_view,process_header_data,2},{entop_view,update_screen,4},{entop_view,fetch_and_update,2},{entop_view,loop,2}]}

Function clause

I get this function clause:

=ERROR REPORT==== 17-Sep-2010::11:58:04 ===
Error in process <0.41.0> on node 'entop@kaze' with exit value:
{function_clause,[{proplists,get_value,3},{inet,gethostname,0}]}

When connected to a node that is spawning a lot of processes during some load.

Improving performance when target has 100k's of processes

When entopping a system with 300k processes, it takes quite a while to refresh the process list (up to a minute). Would be cool if entop could use a different update strategy when it discovers that the number of processes is huge.
For example: refresh only top 1000 processes after getting the initial list (starting with the visible ones, and then it can figure out if a process on the top list has been replaced by keeping track of the Min and Max value for the current sort column), and only get the complete process list in the background, every let's say 30 seconds.

HSize column value is truncated

Hello,

I have been using this tool for some days now and am finding it very useful. One issue however is that the HSize ( which happens to be the column that I am using most) is showing truncated values

E.g ordering on the column HSize:

Pid Registered Name Reductions MQueue HSize SSize HTot

    <0.563.0>  -                                5818505      0      156725   9      156725
    <0.476.0>  -                                 876170       0      832040   9      832040

If I do a process_info for the heap size on this process then I see the value {heap_size,15672560}.

Could you please advise how I can fix ?

Thanks for any assistance,
Devangana Tarafdar

Can I see the Reductions of the interval?

Sometime I want to know which proccess is busy, but now I can't read this data from entop. Entop only show the all Reductions of a process, but not the Reductions of the interval.

Crash when running init:restart on target

Got the following crash when running init:restart in the shell of the target node:
=ERROR REPORT==== 21-Feb-2011::16:53:40 ===
Error in process <0.40.0> on node 'test@dator' with exit value: {{case_clause,{14731,{badrpc,{'EXIT',{undef,[{entop_collector,get_data,[]},{rpc,'-handle_call/3-fun-0-',5}]}}}}},[{entop_view,fetch_and_update,2},{entop_view,loop,2}]}

fuction clause error when monitored node is under load

Error in process <0.39.0> on node 'entop@orz' with exit value: {function_clause,[{proplists,get_value,[registered_name,undefined,undefined]},{entop_format,row,2},{entop_view,hpi,3},{entop_view,update_screen,1},{entop_view,loop,2}]}

I'm assuming something is returning 'undefined' instead of a list, so proplists:get_value blows up?

entop does not use Erlang cookie properly

When trying to connect to a node that has used a cookie from ~/.erlang.cookie, entop cannot connect without the setcookie flag:

./entop target@kaze -sname entop                 
Unable to connect to 'target@kaze', check nodename, cookie and network.

On target@kaze:

=ERROR REPORT==== 17-Sep-2010::12:07:06 ===
** Connection attempt from disallowed node entop@kaze ** 
(target@kaze)1> erlang:get_cookie().
'COOKIE'

In the shell:

» cat ~/.erlang.cookie
COOKIE

This works though:

./entop target@kaze -sname entop -setcookie `cat ~/.erlang.cookie`

This is on Ubuntu 10.04, running Erlang R13B04.

rpc vs remotely spawned process

Right now entop constantly makes rpc calls to the remote node; which is probably more or less okay but feels a little bit awkward.

What do you think about this: instead of doing rpc calls, you can spawn_link(Node, Fun) which will be a simple loop that sends out data, receives configuration updates if any, sleeps for set update timeout, loops?

If you're down with this but don't have time to implement, I can try doing it myself and submitting another pull request. Please let me know.

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.