Process monitoring tools you probably didn't know about
Tags: terminal, tracking, monitoring, devtools
Published: 2019-12-20 12:45:34

---
title: Process monitoring tools you probably didn't know about
published: true
description: Nowadays developers should handle a lot of different operations, especially on own machine. To simplify the work and monitoring of processes in the system and in the network, we picked up several tools to make work in the terminal more comfortable.
tags: terminal, tracking, monitoring, devtools
cover_image: https://thepracticaldev.s3.amazonaws.com/i/vggihyjgialvsdqjmffl.png
canonical_url: https://blog.larapulse.com/dev-tools/process-monitoring-tools
---

## Htop – Linux Process Monitoring

`htop` is a much advanced interactive and real time Linux process monitoring tool. This is much similar to Linux `top` command, but it has some rich features like user friendly interface to manage process, shortcut keys, vertical and horizontal view of the processes and much more. `htop` is a third-party tool and isn't included in Linux systems, you need to install it manually.

![htop - Process monitoring tool](https://thepracticaldev.s3.amazonaws.com/i/zqq6c7cu89pg7x277i4b.png)

#### Features

- it shows a frequently updated list of the processes running on a computer, normally ordered by the amount of CPU usage;
- it provides a full list of processes running, instead of the top resource-consuming processes;
- it uses color and gives visual information about processor, swap and memory status;
- it can also display the processes as a tree;
- it provides a convenient, visual, cursor-controlled interface for sending signals to processes.

#### Instalation

Debian / Ubuntu:

```
$ sudo apt-get install htop
```

CentOs / Fedora:

```
# yum install htop
```

MacOS:

```
$ brew install htop
```

#### Usage

All you have to do is just run it from the terminal:

```
$ htop
```

Navigating throughout this tools is very easy, especially due to the fact that it supports the work of the cursor.

> You can also check out other alternatives, like [Glances](https://nicolargo.github.io/glances/) or [nmon](http://nmon.sourceforge.net/pmwiki.php).

`Glances` is a good htop alternative as it can adapt dynamically when displaying system information, depending on the terminal size.

![Glances at the terminal](https://thepracticaldev.s3.amazonaws.com/i/kr62qq2rck4z4jmbym4p.png)

`nmon` is another htop alternative systems administrators tool, for server tuning, benchmarking or viewing detailed system performance information.

![nmon at the terminal](https://thepracticaldev.s3.amazonaws.com/i/22tlzmr2y9ba9dggk27p.png)

***

## IPTraf – Real Time IP LAN Monitoring

`iptraf` is an open source console-based real time network (IP LAN) monitoring utility for Linux. It collects a variety of information such as IP traffic monitor that passes over the network, including TCP flag information, ICMP details, TCP/UDP traffic breakdowns, TCP connection packet and byne counts. It also gathers information of general and detailed interface statistics of TCP, UDP, IP, ICMP, non-IP, IP checksum errors, interface activity etc.

![IPTraf – Real Time IP LAN Monitoring](https://thepracticaldev.s3.amazonaws.com/i/uavku4rbrxgnmn3dnrp6.png)

#### Features

- An *IP traffic monitor* shows information on the IP traffic passing over your network. Includes TCP flag information, packet and byte counts, ICMP details, OSPF packet types.
- *General and detailed interface statistics* showing IP, TCP, UDP, ICMP, non-IP and other IP packet counts, IP checksum errors, interface activity, packet size counts.
- A *TCP and UDP service monitor* showing counts of incoming and outgoing packets for common TCP and UDP application ports.
- A *LAN statistics module* discovers active hosts and shows statistics showing the data activity on them.
- TCP, UDP, and other protocol display filters allowing you to view only traffic you're interested in.
- Support Logging.
- Supports Ethernet, FDDI, ISDN, SLIP, PPP, and loopback interface types.
- Utilizes the built-in raw socket interface of the Linux kernel, allowing it to be used over a wide range of supported network cards.
- Full-screen, menu-driven operation.

#### Instalation

Debian / Ubuntu:

```
$ sudo apt-get install iptraf
```

CentOS / Fedora:

```
# yum install iptraf
```

#### Usage

If the `iptraf` command is issued without any command-line options, the program comes up in interactive mode, with the various facilities accessed through the main menu. **Note**, that it has to be run with `root` privileges:

```
$ sudo iptraf
```

***

## Ctop - interface for container metrics

[`ctop`](https://ctop.sh/) provides a concise and condensed overview of real-time metrics for multiple containers, as well as a single container view for inspecting a specific container.

> It mostly works same as `docker stats`, but provides a better interface and single container view and logging.

![Ctop - Top-like interface for container metrics](https://thepracticaldev.s3.amazonaws.com/i/mbpnl7hfclz79ol6e8fc.png)

#### Features

- it shows a frequently updated list of the containers with metrics running on a computer;
- it comes with built-in support for Docker and runC;
- it uses color and gives visual information about CPU, memory and network usage;
- it shows logs per instance;
- it has a full-screen, menu-driven operation.

![Ctop - Instance logging](https://thepracticaldev.s3.amazonaws.com/i/t6m11ni7xgbdvo04ictt.png)

#### Instalation

Linux:

```
$ sudo wget https://github.com/bcicen/ctop/releases/download/v0.7.2/ctop-0.7.2-linux-amd64 -O /usr/local/bin/ctop
$ sudo chmod +x /usr/local/bin/ctop
```

MacOS:

```
$ brew install ctop
```

#### Usage

`ctop` requires no arguments and uses Docker host variables by default. To run it, just type it in the terminal:

```
$ ctop
```

***

## Mytop - real-time threads and performance monitoring tools

`mytop` is an open source, command line tool used for monitoring MySQL performance. Mytop connects to a MySQL server and periodically runs the `show processlist` and `show global status` commands. It then summarizes the information in a useful format. Using `mytop`, we can in real-time monitor MySQL threads, queries, and uptime as well as see which user is running queries on which database, which are the slow queries, and more. All this information can be used to optimize the MySQL server performance.

![Mytop - monitoring queries and processes](https://thepracticaldev.s3.amazonaws.com/i/s9qwladw5n0nckutsbve.png)

#### Features

`htop` provides a command-line shell interface to monitor real time MySQL/MariaDB threads, queries per second, process list and performance of databases and gives an idea for the database administrator to better optimize the server to handle a heavy load.

The `mytop` display screen is really broken into two parts. The top 4 lines (header) contain summary information about your MySQL server:

- The first line identified the hostname of the server and the version of MySQL it is running. The right side shows the `uptime` of the MySQL server process in `days+hours:minutes:seconds` format (much like FreeBSD's top) as well as the current time.
- The second line displays the total number of queries the server has processed, the average number of queries per second, the real-time number of queries per second, and the number of slow queries.
- The third line deals with threads. Versions of MySQL before 3.23.x didn't give out this information, so you'll see all zeros.
- And the fourth line displays key buffer efficiency (how often keys are read from the buffer rather than disk) and the number of bytes that MySQL has sent and received.

The second part of the display lists as many threads as can fit on screen. By default, they are sorted according to their idle time (least idle first).

#### Instalation

By default Mytop tool is included in the Fedora and Debian/Ubuntu repositories, so you just have to install it using your default package manager. To install Mytop, run the appropriate command below for your Linux distribution to install it:

```
$ sudo apt install mytop    # Debian/Ubuntu
# yum install mytop         # RHEL/CentOS
# dnf install mytop         # Fedora 22+
# pacman -S mytop           # Arch Linux
# zypper in mytop           # openSUSE
```

To prevent inserting connection details, create a customized configuration file for mytop named `.mytop` in the home directory and add the following content in the file:

```conf
user=root
pass=
host=127.0.0.1
db=
port=3306
delay=3
slow=10
socket=
batchmode=0
header=1
color=1
idle=1
long=120
```

The `delay` option specifies the amount of time in seconds between display refreshes. The `idle` parameter specifies whether to allow idle (sleeping) threads to appear in the list in mytop display screen.

#### Usage

If you configured `.mytop` file, you can run `mytop` without any command-line arguments:

```
$ mytop
```

If you didn't provide a password in the configuration file, you have to use the `--prompt` option to `mytop`, which asks for the password each time:

```
$ mytop --prompt
Password:
```

If you need to connect to another database, then in the configuration file, you could run mytop with necessary arguments:

```
$ mytop -u larapulse -d larapulse_db --prompt
```

***

That's definitely not all useful monitoring tools that exist, so you could find more in resources (links) below. Nevertheless, we think that `htop`, `iptraf`, `ctop` and `mytop` are the most used in the daily development cycle.

***

> **Interesting in reading more? Follow [this link](https://blog.larapulse.com/dev-tools) to find more articles :wink:**