How can I get Linux to show total CPU usage?

I want to show how much the CPU is used over time.

Using system monitor, I am able to show CPU usage, but only the 4 individual cores. I want to be able to show a graph of the total CPU usage.

In other words, CPU core 1+2+3+4 = total, total <- graph

2

2 Answers

You can use conky to do this.

Conky is an application that draws an overlay on your desktop showing different system information. You can customise what is shown by creating a ".conkyrc" file in your home directory.

This is the .conkyrc file I use (It's a modified version of the one in PartedMagic):

# the list of variables has been removed from this file in favour # of keeping the documentation more maintainable. # Check for an up-to-date-list. # set to yes if you want Conky to be forked in the background background yes # X font when Xft is disabled, you can pick one with program xfontsel #font 5x7 #font 6x10 font 7x13 #font 8x13 #font 9x15 #font *mintsmild.se* #font -*-*-*-*-*-*-34-*-*-*-*-*-*-* # Use Xft? use_xft no # Xft font when Xft is enabled xftfont Bitstream Vera Sans Mono:size=11 # Text alpha when using Xft xftalpha 0.8 # Print everything to stdout? # out_to_console no # Print everything to console? # out_to_console no # Update interval in seconds update_interval 5.0 # This is the number of times Conky will update before quitting. # Set to zero to run forever. total_run_times 0 #own_window_title Parted Magic - conky # Create own window instead of using desktop (required in nautilus) own_window yes # If own_window is yes, you may use type normal, desktop or override own_window_type normal # Use pseudo transparency with own_window? own_window_transparent yes # If own_window_transparent is set to no, you can set the background colour here own_window_colour black # If own_window is yes, these window manager hints may be used own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager #own_window_hints below,skip_taskbar,skip_pager # Use double buffering (reduces flicker, may not work for everyone) double_buffer yes # Minimum size of text area minimum_size 280 5 # Draw shades? draw_shades yes # Draw outlines? draw_outline no # Draw borders around text draw_borders no # Draw borders around graphs draw_graph_borders yes # Stippled borders? stippled_borders 4 # border margins border_margin 4 # border width border_width 1 # Default colors and also border colors default_color white default_shade_color black default_outline_color black # Text alignment, other possible values are commented #alignment top_left alignment top_right #alignment bottom_left #alignment bottom_right #alignment none # Gap between borders of screen and text # same thing as passing -x at command line gap_x 15 gap_y 15 # Subtract file system buffers from used memory? no_buffers yes # set to yes if you want all text to be in uppercase uppercase no # number of cpu samples to average # set to 1 to disable averaging cpu_avg_samples 2 # number of net samples to average # set to 1 to disable averaging net_avg_samples 2 # Force UTF8? note that UTF8 support required XFT override_utf8_locale no # Add spaces to keep things from moving about? This only affects certain objects. use_spacer none TEXT ${color goldenrod}Hostname: $nodename ${color goldenrod}Linux Kernel: $kernel ${color goldenrod}CPU Details: $machine, $freq(MHz) ${color}CPU History: ${color darkgreen}${cpugraph 30,0 0000ff 00ff00} ${color}CPU Usage:${color magenta2} $cpu% ${cpubar 11,0} ${color}RAM Usage:${color DeepSkyBlue1} $mem ($memperc%) ${membar 11,0} ${color}Available RAM:${color DeepSkyBlue1} $memmax $color$stippled_hr $alignc${color}Processes:$color $processes ${color grey}Running:$color $running_processes $alignc${color}(top 5 sorted by CPU usage) ${color goldenrod} NAME PID CPU% MEM% ${color} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1} ${color} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2} ${color} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3} ${color} ${top name 4} ${top pid 4} ${top cpu 4} ${top mem 4} ${color} ${top name 5} ${top pid 5} ${top cpu 5} ${top mem 5} $alignc${color}(top 5 sorted by MEM usage) ${color goldenrod} NAME PID CPU% MEM% ${color} ${top_mem name 1} ${top_mem pid 1} ${top_mem cpu 1} ${top_mem mem 1} ${color} ${top_mem name 2} ${top_mem pid 2} ${top_mem cpu 2} ${top_mem mem 2} ${color} ${top_mem name 3} ${top_mem pid 3} ${top_mem cpu 3} ${top_mem mem 3} ${color} ${top_mem name 4} ${top_mem pid 4} ${top_mem cpu 4} ${top_mem mem 4} ${color} ${top_mem name 5} ${top_mem pid 5} ${top_mem cpu 5} ${top_mem mem 5} $color$stippled_hr $alignc${color}System Uptime:${color DarkOrange1} $uptime ${color} Battery: $battery_short ($battery_time) ${color grey} ${battery_bar 11,0} 

I came up with a way to get the overall CPU usage number which you can then graph:

echo print `top -n 1 | tr -s " " | cut -d$" " -f10 | tail -n +8 | head -n -1 | paste -sd+ | bc`/ `nproc` | python 

Source:

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

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

You Might Also Like