I want to have graphs about the percentage of CPU usage, RAM usage, Disk usage which is caused by specific processes (or process groups, or cgroups) on my server (running Debian).

The tool needs to be FOSS, if there is a Debian package, that’s a plus.

The tool does NOT need to do monitoring in the sense of "send an email if resource X is > 75%", just providing graphs is good enough for me.


The solution today is the wonderful Netdata monitoring tool.

This has per-process/group/user monitoring and is absolutely cgroup and container-aware.

enter image description here


As far as i know, there isnt any enterprise class monitoring system which give cpu usage/Ram usage based on Per process(or PID). All these monitoring systems do is that they monitor a specific SERVICE (regardless of how many processes or threads it has made).

For your Easy, you can use MUNIN at the beginning, which provides graphing of all the resources you need, and it gives resource monitoring based on specific service (e,g, Disk I/O, Apache, mysql, system uptime etc)

After that, you can try using OpenNMS, which provides a very wife range of performance metrics monitoring (as well as very detailed Graphing and reporting) for wide range of services.

  • How is a service defined in that case? I know of munin, cacti, collectd and others and I already use them, but they work per-machine and not per-process/cgroup/service. – Michael Nov 26 '11 at 15:27
  • By service i mean e.g a whole server application, like SSH, Apache, Dns, DHCP, Tomcat, Active directory etc. i think for per/process resource utilization, you might need to work on manual solution. – Farhan Nov 26 '11 at 15:30
  • I know what you mean, but how does the tool know what, for example, Apache is? Does it use the pidfile and considers all child processes related to the service? Do you have to manually specify it? – Michael Nov 26 '11 at 15:38
  • as i have already said, these monitoring solutions DO NOT consider per process resource utilization. these monitoring application either get data from SNMP, or from the client installed on that machine. that client actually collects the performance parameters of Whole service (not through individual process). – Farhan Nov 26 '11 at 15:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.