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:

top

Let’s see it in action below.

top-command-memory
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

free-command-memory
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.

3. /PROC/MEMINFO file

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

proc-memory-file
Learning about system memory using /proc/meminfo file

4. VMSTAT

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.

vmstat

vmstat-command-memory-virtual
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

5. SMEM

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.

6. HTOP

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.

htop-memory
Interactive htop view

Conclusion

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 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. Hope you enjoy reading and using this blog to enhance your Linux experience! Have a great day ahead!

LEAVE A REPLY

Please enter your comment!
Please enter your name here

STAY CONNECTED

23,874FansLike
265FollowersFollow
16SubscribersSubscribe

LATEST ARTICLES

How to create a Fedora Games Live USB drive in Linux

One of the best Fedora spins that has been for a while and also being well maintained is the Fedora Games. The Fedora Games spin is a great showcase of the best games available in the Fedora operating system.
linux download managers
We often need to download large files that can go corrupt due to various reasons such as slow internet or interrupted download. Using a broken downloaded file is not something one wants. Download managers make sure that the downloaded file maintains its integrity and also presents you with the ability to pause and resume downloads, provided the server supports it. When you are downloading a massive file, it's recommended to use a download manager.
best linux distros programmers
Linux distros have long been a favorite among programmers since the rise in popularity of the OS in the nineties. Programmers are technical by nature, and Linux distros appeal to that technical nature. Let's discuss why Linux is a great desktop OS for programmers and developers, and find out best distros suitable for them.