Top 6 commands to check the memory usage on Linux

System administrators controlling remote Linux systems may need to use the command-line approach to check and troubleshoot high memory usage on a network. Here are the best commands that you can fire on the Linux Terminal and start analyzing the results.

Do you find that your Linux installation has been running slowly lately? If you do, then you need to test which programs or processes are using the system resources. There are, of course, some processes that go rouge and run in the background without your knowledge.

In this article, we shall list top commands to check the memory usage on Linux. The commands should help you understand the memory consumption of the programs and processes. System administrators controlling remote Linux systems may need to use the command-line approach. You should then be able to take necessary action like disabling the process and switching the program with another one that’s compatible with your system.

Commands to check the memory usage on Linux

For the tutorial, we are going to use Ubuntu 19.10. If you are using a different version or another distro, the guide should still work as these are not distro dependent, except the smem and htop tool whose installation is distro dependent.

1. Top

top is an easy way to check the memory usage on your system. It is also one of the most used commands because it offers an interactive, dynamic, and real-time showcase of the running process.

Launch the terminal and use the command:


Let’s see it in action below.

top listing the processes dynamically

As you can see that it is ample information about each process, including its PID, User, RES, Command, Time+, and so on.

If you want only to show only ten processes, then use the command below.

top -b | head - 10

2. Free

free is yet another useful and popular way to check memory consumption. It gives you an eagle-eye view of the memory on your machine. It shows used and free swap and physical memory. Moreover, it also indicates caches and buffers by the kernel.

The free command extracts the information from the “/proc/meminfo” file.

To run the command, type:

free - m

Showing system’s memory using free

As you can, it has multiple columns, including total, used, free, shared, buff/cache, and available. These columns are filled with information corresponding to Mem and Swap.


If you want more detail information about your system memory consumption and utilization, then you can check out the /proc/meminfo file, which contains various real-time memory usage information. It is a virtual file, as well.

To check its contents and learn about memory usage, you need to use the command below.

cat /proc/meminfo

Learning about system memory using /proc/meminfo file


If you want to learn about virtual memory, then you need to use the vmstat command. It is widely used to report virtual memory statistics. By using the command, you can know about memory, processes, block IO, paging, CPU, and disks.

The command for it is as below.


Using vmstat to learn about virtual memory

As you can see, the output can be a little confusing. The six significant parts of the output include the following, procs, memory, swap, io, system, and CPU. This means that it offers information about the six aspects of your machine.

In proc, it lists two parameters:

  • r: It shows the runnable processes number including waiting or running for run time
  • b: It shows the processes that are in the uninterruptible setup

In the case of memory, it lists the following parameters:

  • swpd: virtual memory used
  • free: idle memory
  • buff: memory used as buffers
  • cache: memory used as a cache
  • inact: inactive memory
  • active: active memory

If you look at the swap, you will find the two parameters:

  • si: memory swapped from disk
  • so: memory swapped to disk

Next, we have IO.

  • bi: blocks from block devices(received)
  • bo: blocks to block devices (sent)

The second last section consists of the following:

  • in: total number of interrupt
  • cs: total number of context switches/second

Lastly, CPU list the following:

  • us: non-kernel core time spent
  • sy: kernel code time spent
  • id: idle time spent
  • wa: time spent waiting for IO
  • st: time used from the virtual machine


The smem command is useful for generating numerous reports on Linux systems. It doesn’t come pre-installed with the Ubuntu distro version we are using. To install it, you need to use the following:

sudo apt-get install smem

So, what exactly smem offers?

It is a tool that provides various memory-based reports. With it, you can generate Unique Set Size(USS), Resident Set Size(RSS), and Proportional Set Size(RSS) reports.

Each report has its value and offers something unique. Let’s discuss them below.

  • USS: List all the unshared memory
  • RSS: List a standard physical memory measure
  • PSS: List memory used by applications and libraries in the virtual memory system.

Note: Only use it if you have Python 2.x version installed. It should throw an error if you use a Python 3.x version or above.


The last one we are going to discuss is htop. Unlike other commands, it offers an interactive view of the processes. It is kind of similar to top but provides a better view and control over the information. For instance, it lets you scroll horizontally and vertically.

To install it, you need to use the following command:

sudo apt install htop

Once installed, you need to type htop in command prompt to run it.

Interactive htop view


This leads us to the end of our article on top commands to check the memory usage on Linux. We hope you found out the one best suited for you. Do you find any other commands that are important and not mentioned here? What are the benefits that it has? Use the form below to let FOSSLinux readers know.

Divya Kiran Kumar
I'm the Editor of FOSS Linux. I worked as a Software Engineer before taking up blogging as my full-time job. I enjoy using Linux, and can't imagine anything else for my PC. Apart from writing for FOSS Linux, I enjoy reading non-fictional books. Sapiens was my favorite last read. I hope you enjoy reading and using this blog to enhance your Linux experience! Have a great day ahead!


Please enter your comment!
Please enter your name here





Buyers who wish to go for a machine that is based on Linux often show interest in Chromebooks due to the form factor and extended battery life capabilities. Although ChromeOS power these machines, users can still miss out on a more genuine Linux experience. For those who happen to agree, the new Lemur Pro by System76 might get some heads turning.
Linux is growing faster than ever. As per the latest report, there is a drop in the Windows 10 market share for the first time, and Linux's market share has improved to 2.87% this month. Most of the features in the list were rolled out in the Pop OS 20.04. Let's a detailed look into the new features, how to upgrade, and a ride through video.

The 10 Best Linux Performance Monitoring Tools

Do you want to monitor the performance of your Linux system? Are you looking for some powerful performance monitoring tools to help you out? If you agree, it's your day as we have put together a detailed list of the ten best Linux performance monitoring tools.

5 Best Ways to Free up Hard Disk Space in Ubuntu

Hard disk space can easily get filled up with cached package files, old kernels, and other obsolete files that occupy unwanted hard disk space. Here are top five best and safer ways to clean and free up hard disk space in Ubuntu. We show you Terminal and GUI way of cleaning up system.

Top 5 Linux Distros for Windows Users

When Microsoft initially released Windows 7 in October 2009, the software giant committed to providing ten years of support for its popular operating system.  The much-maligned Microsoft was true to their word, support for Windows 7 ended just yesterday a little over ten years after its release.

3 Best Ways to Uninstall Software on Ubuntu

Uninstallation of programs can be done by graphical way using the Ubuntu Software Center, and the Synaptic Package manager. Command-line way of doing it is also possible using apt-get and aptitude commands. We shall discuss each one of them in detail.