Image

9 Best Tools to Monitor Raspberry Pi’s Performance

If you click our links and make a purchase, we may earn an affiliate commission. Learn more

The Raspberry Pi is a fantastic little computer that packs a powerful punch! To keep everything running smoothly, it’s essential to monitor its performance. Overheating, memory overuse, or sudden slowdowns can impact its performance. Luckily, many great tools are available to help you keep your system healthy and happy!

Tools like top and vcgencmd come pre-installed with Raspberry Pi OS and can monitor the system’s health. Several tools and software, like htop and PiCockpit, are available in the official repository and on GitHub and can be installed to provide additional features/ capabilities.

In this article, I will share nine such tools with you. Whether you prefer lightweight command-line tools or detailed web-based dashboards, this guide will walk you through the best options and how to use them effectively.

If you’re looking for inspiration for your next Raspberry Pi project, I’ve put together a list of 75+ ideas with full descriptions, difficulty ratings, and links to tutorials. Whether you’re a beginner or more advanced, there’s something here for you. Grab the list for free here!

Command Line Tools

Several command-line tools are available to monitor your Raspberry Pi’s performance. The advantage of using command-line tools is that they are less resource-intensive and can also be used over SSH.

top – Basic System Monitoring (Preinstalled)

The top command is one of the first command-line tools that comes to mind when considering hardware monitoring. It is pre-installed on all Linux installations and can be used to view system resources dynamically, similar to the process view of Task Manager in Windows.

Installation

top comes pre-installed with all versions of Raspberry Pi OS. You can verify its version using this command on your terminal:
top --v
Image

However, if it is not installed on your Raspberry Pi, you can install the procps package from the official repository:
sudo apt install procps
Image

Usage

Basic usage of the top is straightforward. You can enter the command ‘top’ in the terminal and press enter.
Image

This will show dynamically updated information on all the processes running on your system. Towards the top of the screen, you will see system information such as uptime, CPU usage, and memory usage.

Below that is a tabular display of all processes running on your system. The z key enables colours and highlights the process list.
Image

You can also use the i key to hide all idle processes and only see the list of active ones.
Image

If you want to kill a specific process, you can use the k key and enter the process’s PID followed by an enter.
Image

Press enter to confirm.
Image

As you can see, the top can perform essential system hardware monitoring and process management. It can be a great tool if you are looking for something lightweight that comes pre-installed and works similarly to the process view of Windows Task Manager.

htop – Advanced Process & Resource Monitor

htop is a command line tool similar to top. It provides some additional functionality with a more user-friendly interface.

Installation

You can install htop from the official repository using the command:
sudo apt install htop
Image

Usage

Like top, you can use htop by entering ‘htop’ in the terminal and press enter.
Image

75+ project ideas for your Raspberry Pi
Need some inspiration for your next Raspberry Pi project? Get access to my personal list here!
Download now

htop has a similar interface as that of top. Towards the top of the screen, you can find system information. However, htop displays information in a more graphical format with bars depicting the percentage usage of each resource.

Unlike top, the htop interface can be navigated using both the keyboard and the mouse. You can switch between the main screen, which shows the resource usage of each process, and the I/O tab, which shows the disk usage and I/O statistics.
Image

You can also click on any statistics to sort based on that resource.

You can select multiple programs simultaneously by navigating to them and pressing the space. Once a few processes have been selected, you can press F9 to kill those processes.
Image

In addition to using the Filter (F4) and Search (F3) functions, you can also use the a key to set the number of CPU cores a process can use.
Image

Similarly, you can use the i key to set IO priority for a specific process.
Image

htop offers all the functionality of top, but comes with a few additional features, a slightly more user-friendly interface, and color coding. Overall, I recommend using htop over top since it is lightweight and provides a more intuitive interface.

vcgencmd – Check CPU Temperature & Clock Speed

vcgencmd is a tool developed by Broadcom. It outputs information from the Raspberry Pi’s VideoCore GPU. It is an excellent tool for checking hardware performance statistics, such as the CPU temperature and the clock speed.

Installation

vcgencmd comes pre-installed with all versions of Raspberry Pi OS and does not need to be installed manually. You can find the source code of this tool on GitHub.

Usage

It is primarily a debugging tool, and documentation on it is scanty. However, you can find a list of all available command line options using:
vcgencmd commands
Image

For example, we can use this command to determine the temperature of the Raspberry Pi SoC using its internal temperature sensor:
vcgencmd measure_temp
Image

Alternatively, we can use this command to find the temperature of the PMIC on Raspberry Pi 4:
vcgencmd measure_temp pmic
Image

Similarly, this command can find the ARM Processor’s clock speed:
vcgencmd measure_clock arm
Image

vcgencmd commands are not dynamic like top or htop. However, these commands are compatible with Python and can be used in Python code to make a dynamically monitoring script. You can read the details of the Python library on this GitHub page.

While no official documentation for this tool exists, you can find some useful commands and their relevant arguments on this GitHub page.

Image

If you’re new to the Linux command line, this article will give you the most important Linux commands to know, plus a free downloadable cheat sheet to keep handy.

iostat – Monitor CPU & Disk Usage

The iostat tool monitors the system input/ output statistics for devices and partitions. It can be an excellent tool for debugging or monitoring a specific device’s read and write speed. iostat monitors the input/ output by observing the time the devices are active and their average transfer speed.

75+ project ideas for your Raspberry Pi
Need some inspiration for your next Raspberry Pi project? Get access to my personal list here!
Download now

Installation

iostat is included in the sysstat package and can be installed using the command:
sudo apt install sysstat
Image

Usage

To use this command line tool, type iostat in your terminal and press enter.
Image

This display shows the CPU usage in the first table and the device’s I/O usage in the second table. The device names are the same as listed in the /dev directory.

By default, the iostat uses the kilobytes. If you want to see statistics in megabytes, you can use the -m flag:
iostat -m
Image

The output of this command is not dynamic. It only shows the snapshot values of the instance that this command was executed. However, enter the delay and number of repeats in the command below to do a trend analysis:
iostat <flags> <delay> <repeats>
Image

iostat is an excellent tool for monitoring device, peripheral, or CPU usage statistics. It should be part of your arsenal of system monitoring tools.

iftop – Real-Time Network Bandwidth Usage

Another helpful system monitoring tool is the iftop. This tool can monitor the network bandwidth usage by different interfaces and help you troubleshoot networking issues.

Installation

You can install iftop through the official repository using the command:
sudo apt install iftop
Image

Usage

You can use the command below to display the basic bandwidth usage of your default interface:
sudo iftop
Image

The default interface on my Raspberry Pi is the eth0. However, I need to change the interface since I am using WiFi to connect to the internet. To do so, we can use this command:
sudo iftop -i wlan0
Image

The interface shows the total upload and download speed and the bandwidth consumed by individual ports.

To see all available command line options, you can run this command:
iftop -h
Image

As you can see, iftop has several options to monitor the network traffic on any single interface. If you want to debug or monitor applications that rely on networking, then iftop is a must-have tool for figuring out what’s slowing you down.

If you’re looking for inspiration for your next Raspberry Pi project, I’ve put together a list of 75+ ideas with full descriptions, difficulty ratings, and links to tutorials. Whether you’re a beginner or more advanced, there’s something here for you. Grab the list for free here!


🛠 This tutorial doesn't work anymore? Report the issue here, so that I can update it!

If this project doesn’t work as expected on your setup, don’t worry. You can get help directly from me and other Pi users inside the RaspberryTips Community. Try it for $1 and fix it together.

Graphical Tools

In addition to these powerful command line tools, several graphical tools are available to monitor your Raspberry Pi’s performance. While graphical tools are more resource-intensive, they provide much greater versatility.

Glances – All-in-One Performance Monitoring

Lost in the terminal? Grab My Pi Cheat-Sheet!
Download the free PDF, keep it open, and stop wasting time on Google.
Download now

Glances is a program written in Python. It provides functionality similar to that of top and htop. Still, it comes with many additional functionalities, like monitoring the performance of your device in a web browser on any PC connected to the network.

Installation

Glances can be installed using the official repository. However, the version available on the official repository does not come with the js files; therefore, the web interface doesn’t work correctly. I recommend this method for installing Glances on your Raspberry Pi.

  • Make sure your system is up to date using the command:
    sudo apt update && sudo apt upgrade
    Image
  • Install all dependencies using the command:
    sudo apt install gcc python3-dev pipx
    Image
  • Install glances using the pipx command:
    pipx install 'glances[all]'
    Image
  • If you see the note that I received in the above step. Run this command to fix your PATH:
    pipx ensurepath
    Image
  • Now restart your Raspberry Pi to ensure all changes take effect.

That is it. Glances is now installed on your Raspberry Pi and ready to use.

Usage

In its simplest form, Glances can be used like top and htop. Type ‘glances‘ in your terminal and press Enter.
Image

Glances provide an interface similar to top and htop. However, it comes with additional information like CPU temperature, disk read-write speed, and network traffic information.

Additionally, you can run Glances with the -w flag to run it in the web server mode:
glances -w
Image

Now, you can open a web browser on any computer connected to this network and enter this address to access the Glances dashboard:
http://<Raspberry Pi IP Address>:61208/
Image

Glances is an excellent tool to monitor your Raspberry Pi’s health over LAN remotely. It comes with all the monitoring prowess of htop coupled with some additional features.

To read more about Glances, you can follow their official GitHub page.

Netdata – Real-Time Web-Based Monitoring

Netdata is another Graphical system monitoring tool that enables you to monitor your Raspberry Pi remotely. It is an open-source, cross-platform tool that can monitor multiple devices simultaneously.

Installation

The installation of Netdata is straightforward using the kickstart.sh, run this command in your terminal:
wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh
Image

It will prompt you a couple of times during the installation when it tries to install some packages from the official repository. Press y at those prompts to finish the installation.

Usage

You can access the Netdata dashboard by entering this web address in a web browser on any PC on the same network as your Raspberry Pi:
http://<Raspberry Pi IP>:19999/
Image

From here, you can either sign in to your Netdata ID to link your Raspberry Pi to it or skip and use the dashboard anonymously, as I chose.

Once signed in, you will be greeted by the Netdata dashboard.
Image

The Netdata comes with a lot of system monitoring tools. It displays all available metrics in neat graphical formats, which can be used to track hardware performance.
Image

All components of the Netdata dashboard can be rearranged as you prefer.

Lost in the terminal? Grab My Pi Cheat-Sheet!
Download the free PDF, keep it open, and stop wasting time on Google.
Download now

If you are working with multiple Raspberry Pis, Netdata can be an excellent tool for monitoring the hardware performance of all those devices simultaneously and remotely. You can read more about this tool on its official website.

Grafana + Prometheus – Custom Dashboard for Metrics

Prometheus is an open-source application that pulls system statistics and saves them in a series database. Similarly, Grafana is another open-source visualization and dashboard tool that runs as a web application. By combining these two applications, we can design our custom dashboards to monitor the health of our Raspberry Pi.

Installation

We need to install both applications separately. The installation process is as simple as downloading the stand-alone binaries from their respective websites and making systemd services for both applications. However, configuring them can take some time.

I found this helpful tutorial written by d3noob that I followed to get them set up. You can try following it as well.

Usage

Once installed and configured, you can access the Grafana webpage by opening this web address in any browser connected to the same network as your Raspberry Pi:
http://<IP address of your Raspberry Pi>:3000

If you followed the tutorial from d3noob, you have already set up your first dashboard linked to Prometheus.
Image

Grafana + Prometheus offers functionality similar to that of Netdata. However, The slightly complicated configuration procedure allows for much more customization. Several dashboard designs are available on the open source, or you can also design your dashboard.

When choosing between Netdata or Prometheus, it comes down to the fact that Netdata works out of the box while Prometheus requires configuration that allows for more customization.

PiCockpit – Web-Based Raspberry Pi Manager

One of the best options to monitor Raspberry Pi’s health and control it remotely is the PiCockpit. It is an all-in-one solution. In addition to monitoring the health of your Raspberry Pi you can also use PiCockpit to control it using a remote terminal.

Installation

To install PiCockpit on your Raspberry Pi, follow these steps:

  • Go to the PiCockpit website and click “Get Started for Free.
    Image
  • Create a new PiCockpit ID or sign in using Google.
  • Once signed in, you will be greeted by this web page.
    Image
  • Click on “Add Pi”, copy the curl command and run it on your Raspberry Pi terminal.
    Image
  • Once the script has finished executing on your Raspberry Pi, refresh the webpage to find your device listed.
    Image

That is it, we have the PiCockpit installed and configured and it is ready to use.

Usage

The usage of PiCockpit is straightforward forward. You can click on your device on the webpage to get a list of all available options.
Image

As you can see, there are several things you can do with PiCockpit. For basic monitoring of your Raspberry Pi’s health, you can click on PiStats to get a real-time graphical display of the health of your Raspberry Pi.
Image

There are several statistics to choose from that you can monitor.

Alternatively, you can use the terminal option to remotely access the terminal prompt of your Raspberry Pi to carry out remote admin and monitoring tasks.
Image

PiCockpit is easy to use and extremely versatile. It is more than just a system health monitoring tool and is easily recommendable as an all-in-one solution for remote control and health monitoring for your Raspberry Pi.

Whenever you’re ready, here are other ways I can help you:

Test Your Raspberry Pi Level (Free): Not sure why everything takes so long on your Raspberry Pi? Take this free 3-minute assessment and see what’s causing the problems.

The RaspberryTips Community: Need help or want to discuss your Raspberry Pi projects with others who actually get it? Join the RaspberryTips Community and get access to private forums, exclusive lessons, and direct help (try it for just $1).

Master your Raspberry Pi in 30 days: If you are looking for the best tips to become an expert on Raspberry Pi, this book is for you. Learn useful Linux skills and practice multiple projects with step-by-step guides.

Master Python on Raspberry Pi: Create, understand, and improve any Python script for your Raspberry Pi. Learn the essentials step-by-step without losing time understanding useless concepts.

You can also find all my recommendations for tools and hardware on this page.

Similar Posts