Monitoring Processes/Inter-process communication with Linux

748 views Asked by At

I would like to find a tool that should monitor/profile processes (not what's inside processes, but process inter dependence) (inter-process communications and also indirect communications) of a process. Is there a tool to analyze and visualize this?

I found the tool kcachegrind with some suggestions from various forums. But this tool, afaik is used for call-graph generation. I need high-level call graph of processes, not runnables inside a process.

So the method or the tool should give:

  • Read/write accesses (which process communicates to which process, is it a read or write access from which memory space, what kind of interface is there)

  • Communication instruction size and memory size

  • Individual processes instruction sizes (how many instructions would it take to complete the entire process or a cycle of this process)

Any help is greately appreciated. Thanks in advance.

EDIT: Processes we have:

  • Ethernet application (Read over ethernet and write to an .inc file for web server to access, and send non-blockingly over TCP from an .inc file to XMOS board) (Reading is threaded) (Written with Python)

  • Touchscreen display application (Core load visualization, app starting/killing/allocation handled, deadline misses are calculated) (There is one thread that updates XMOS core usage from .inc file, besides the main loop) (Written with Python)

  • Core Reader (This is an app that gets cpu core usage from kernel folders, and writes it into an .inc file, which is then read by Touchscreen display application) (Written with Python)

  • Mjpg-Streamer (Webcam stream, it uses a .so file which I have no control over at all, since it is like a .dll file for Linux, you I'm sure do know a lot about)

  • TightVNC server app (Used for PC/VNC communication, out of my reach as it is an application that I did not develop)

  • Apache2 server (Used for hosting .php/jquery webpage, out of my reach as it is an application that I did not develop)

  • CycleWaster25% (A process that wastes core cycles roughly 25%, no threads, no communication)

  • CycleWaster100% (Same as above, wastes 100% core cycles)

0

There are 0 answers