Top commands I am using in my daily work
Tags: metrics, tools, monitoring, performance
Published: 2020-12-09 15:37:17

---
title: Top commands I am using in my daily work
published: true
description: Process monitoring tools you probably didn't know about
tags: metrics, tools, monitoring, performance
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/6vsx738tw815sb3n6ude.png
---

Nowadays developers should handle a lot of different operations, especially on their own machine. To simplify the work and monitoring of processes in the system and in the network, I picked up several tools to make work in the terminal more comfortable.

> **Disclaimer**: *this article is not about my comprehensive list of tools I am using every day, it is about useful `top`-like tools that help me do my job better and improve performance.*

### `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 more features like user-friendly interface to manage processes, 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, so you need to install it manually.

![htop - Process monitoring tool](https://dev-to-uploads.s3.amazonaws.com/i/rxiqo26a8aghpo3i458r.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 colour 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.


### `ctop`: interface for container metrics

`ctop` 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 has a better interface and single container view and logging pages.

![Ctop - Top-like interface for container metrics](https://dev-to-uploads.s3.amazonaws.com/i/06vhatgsjgj8gtg8qse0.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 colour 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://dev-to-uploads.s3.amazonaws.com/i/glhwk3ofpt20fzkx2b7f.png)

### `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://dev-to-uploads.s3.amazonaws.com/i/wyc75c2zrn2pfj2buyae.png)

#### Features

`mytop` 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 the heavy load.

`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).

***

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