While I probably need some kind of monitoring tool like mon or sysstat or something. I am looking for a way to know which tasks take the most of my memory,CPU time etc.
While I understand that each workstation/desktop PC is unique, a typical workload on one of my desktops is something like this :
- Single user (even though the choice is there to have multiple users)
- games - Aisleriot, kshisen
- torrent client - qbittorrent
- mail client - thunderbird
- messaging clients - empathy, telegram and quasselcore and client.
- Browser - Firefox and sometimes tor
- desktop - MATE
- media player - mpv most of the time
it's usually a light workload most of the time but I still see the hdd sensor lighting up which means some background tasks is going intently even though no foreground tasks are happening. While I could use top to find what tasks take most of the CPU and memory cycles, it is only for the moment. I realize I need something which I could figure out over period of time (say a day), runs in the background and produces nice enough graphs to analyze, and most of all has the raw data in user-defined location, say in /home/shirish/mon or whatever directory name is there. It is ok if it is /var/log//logs is where it keeps.
I just need to know few things :
- Which processes take memory and CPU over time, foreground and background.
- Which background processes take most of the CPU and memory
- The logging is tunable, taking snaps every 2-5 minutes.
I am sure there are tools and ways in which people have done it for servers etc. but has anybody done for the above scenario ? If yes, how they went about it ?