Program memory space linux

How to Check Memory Usage Per Process on Linux

These days, a computer can run many programs at once. The CPU has no problem handling all these programs because CPUs has multiple cores to handle multi-tasking.

Each of these programs runs as one or more processes. Every process allocates some amount of RAM or memory for itself. It is essential for the process to function correctly. If a process fails to allocate enough RAM or memory, then the process can’t be created and the program won’t be able to start.

So, one of the basic task you do on your computer is to check how much memory or RAM (Random Access Memory) each of the process is using. Because, RAM or memory of your computer is limited.

Imagine a case, where you want to run some program and it fails because you don’t have enough memory. May be some of the processes are using a lot of memory that you don’t need right now. You can kill or stop these processes to free up RAM or memory, so that you can start your important programs.

In this article, I will show you how to check memory usage of each of the processes running on your Linux machine. I will be using Debian 9 Stretch for all the demonstration in this article. But it should work on any modern Linux distributions. Let’s get started.

Checking Memory Usage Using ps Command:

You can use the ps command to check memory usage of all the processes on Linux. There is one problem with this procedure. ps don’t really show you how much memory a process uses in KB or MB format, but it will show you how much memory is being used in percentage.

You can check memory usage (in percentage) of all the process running on your Linux operating system with the following command:

As you can see, all the processes with memory usage in percentage is listed in descending order (The processes using most of the memory is listed first).

Checking Memory Usage of Processes with pmap:

You can check memory of a process or a set of processes in human readable format (in KB or kilobytes) with pmap command. All you need is the PID of the processes you want to check memory usage of.

Let’s say, you want to check how much memory the process with PID 917 is using. To do that, run pmap as follows:

As you can see, the total memory used by the process 917 is 516104 KB or kilobytes. You can also see how much memory the libraries and other files required to run the process with PID 917 is using as well here.

Читайте также:  Linux users and sudo

If you don’t care about how much memory the libraries or other dependent files are using, then run pmap as follows:

As you can see, only the total memory used by the process with PID 917 is printed on the screen.

If you want, you can further filter this with awk and get only the size in KB or kilobytes. To do that, run pmap as follows:

$ sudo pmap 917 | tail -n 1 | awk ‘/3K/

As you can see, only the memory usage in KB or kilobytes is printed.

Now you can also list how much memory is used by multiple processes using their PIDs with pmap as follows:

NOTE: Here 917 and 531 are process IDs or PIDs. You can put as many PIDs as you want this way.

Using pmap to List Memory Usage of All the Processes in Kilobytes:

In this section, I will show you how to write your own shell script to list memory usage of all the processes running on your Linux operating system in human readable format (kilobytes or KB).

First make a new file sysmon in your current working directory with the following command:

Now make the file executable with the following command:

sysmon is the shell script that will display all the running processes PID, OWNER, MEMORY (in KB in descending order) and COMMAND. Let’s start.

Open the sysmon script with your favorite text editor, I am going to use Kate.

Now, the first command I am going to run will give me the PID, OWNER and COMMAND of all the running processes separated by colon (:) symbol and store it in the RAWIN variable. Then loop through the output and print it on the screen.

As you can see, I am getting the correct output.

Now it’s time to process each line, store the colon delimited information in separate variables. That’s what I did on line 7, 8 and 9.

As you can see, I can print PID, OWNER and COMMAND in my own format now.

Now it’s time to fetch memory usage of each PID. Line 10 does just that.

As you can see, everything is working perfectly. Now I can print memory usage of each process in kilobytes (KB) as well.

Now all that is left to do is format the output to look nice. I prefer table format. Line 5 prints the header of each column of the table.

Finally, I printed PID, OWNER, MEMORY (in KB) and COMMAND of each processes in a tabular format using line 14.

As you can see, it’s working kinda well. There is a little bit of problem though, the processes are not correctly sorted in descending order by memory usage.

To fix that, I removed sort -bnr -k3 from line 3 and wrapped everything in a shell function sysmon_main(). Then left the job of sorting to the sort command.

The final shell script looks something like this:

As you can see, it works great.

Now you can move it to somewhere like /usr/bin and execute it just like other commands as follows:

Executing sysmon:

Thanks for reading this article.

Источник

How to Check Memory Usage in Linux, 5 Simple Commands

It is essential that your Linux system runs at an optimal level. A few simple terminal commands provide access to all relevant information and help you monitor memory statistics.

Читайте также:  Img file open linux

In this tutorial, learn five powerful commands to check memory usage in Linux.

We also provide detailed explanations of what they do and more importantly, how to interpret the results. The commands will work with nearly all Linux distributions. In this instance, the commands and the results are presented using Ubuntu 18.04.

tutorial on how to check memory usage on linux

  • Access to a command line / terminal
  • User with sudo privileges
  • The apt package manager

Commands to Check Memory Use in Linux

cat Command to Show Linux Memory Information

Entering cat /proc/meminfo in your terminal opens the /proc/meminfo file.

This is a virtual file that reports the amount of available and used memory. It contains real-time information about the system’s memory usage as well as the buffers and shared memory used by the kernel. The output might differ slightly based on the architecture and operating system in question.

This is an example of what the /proc/meminfo file looks like in Ubuntu 18.04:

cat-proc-meminf-linux-memory

The terminal displays the information in kilobytes.

free Command to Display the Amount of Physical and Swap Memory

Typing free in your command terminal provides the following result:

linux-free-command

The data represents the used/available memory and the swap memory figures in kilobytes.

total Total installed memory
used Memory currently in use by running processes (used= total – free – buff/cache)
free Unused memory (free= total – used – buff/cache)
shared Memory shared by multiple processes
buffers Memory reserved by the OS to allocate as buffers when process need them
cached Recently used files stored in RAM
buff/cache Buffers + Cache
available Estimation of how much memory is available for starting new applications, without swapping.

Compared to the /proc/meminfo file, the free command provides less information. However, it is easier to understand. The key figure being the available value as it displays how much memory is still available for running new applications.

The free command has multiple options to format the output so that it better matches your requirements. The table below lists the most useful variations of the free command.

Options Result
-b output in bytes
-k output in kibibytes
-m output in mebibytes
-g output in gibibytes
-l detailed low and high memory statistics
-o old format (no -/+buffers/cache line)
-t total for RAM + swap
-s update every [delay] seconds
-c update [count] times

Note: As with most commands, entering man free displays an overview of all variations and descriptions of the results.

vmstat Command to Report Virtual Memory Statistics

The vmstat command is a useful tool that reports virtual memory statistics.

vmstat provides general information about processes, memory, paging, block IO, traps, and CPU activity.

linux-vmstat-memory-check-command

The detailed description listed below provides an explanation for each value in case you need assistance in analyzing the results.

  • Procs
    • r: number of processes waiting for run time.
    • b: number of processes in uninterruptible sleep.
    • swpd: amount of virtual memory used.
    • free: amount of idle memory.
    • buff: the amount of memory used as buffers.
    • cache: amount of memory used as cache.
    • si: memory swapped in from disk (/s).
    • so: memory swapped to disk (/s).
    • bi: Blocks received from a block device (blocks/s).
    • bo: Blocks sent to a block device (blocks/s).
    • in: number of interrupts per second, including the clock.
    • cs: number of context switches per second.
    • us: Time spent running non-kernel code. (user time, including nice time)
    • sy: Time spent running kernel code. (system time)
    • id: Time spent idle. Before Linux 2.5.41, this includes IO-wait time.
    • wa: Time spent waiting for IO. Before Linux 2.5.41, included in idle.
    • st: Time stolen from a virtual machine. Before Linux 2.6.11, unknown.

    top Command to Check Memory Use

    The top command is useful to check memory and CPU usage per process. It displays information about:

    • uptime
    • average load
    • tasks running
    • number of users logged in
    • number of CPUs/CPU utilization
    • memory/swap system processes

    The data is continuously updated, which allows you to follow the processes in real-time.

    top-command-linux-memory

    Aside from providing you with essential memory information, the top command provides a limited interactive interface. It is possible to manipulate and configure operations by using command-line options.

    The man command in Linux man top provides a comprehensive list of all available variations.

    htop Command to Find Memory Load of Each Process

    The information the htop command provides is similar to the top command. However, the real advantage to the htop command is its user-friendly environment and improved controls.

    The command uses color for its output, provides full command lines for processes, as well as the option to scroll both vertically and horizontally.

    The following output appears:

    htop-linux-command-memory

    1. The top segment provides summary information and contains graphic meters and text counters.
    2. The lower section structures the detailed data, per process. This allows you to perform actions on individual processes with ease.
    3. The shortcuts listed at the bottom of the screen will enable you to manipulate and customize the processes quickly and without the need to type specific commands.

    Note: If you run into “Command ‘htop’ not found” message when trying to run the htop command, you will need to install the htop function first:

    As an alternative, use the command below:

    Checking Memory Usage in Linux using the GUI

    Using a graphical interface for server administration is not common practice. However, certain data sets are much clearer, with a visual representation of memory usage.

    To access the System Monitor:

    1. Navigate to Show Applications.
    2. Enter System Monitor in the search bar and access the application.
    3. Select the Resources tab.
    4. A graphical overview of your memory consumption in real time, including historical information is displayed.

    gui-gnome-memory-system-monitor

    This guide provided several options to check memory usage on your Linux system. We learned that a single command provides an abundance of valuable data for future analysis. Learning to interpret the information correctly is critical.

    Now you can administer your server more efficiently.

    Vladimir is a resident Tech Writer at phoenixNAP. He has more than 7 years of experience in implementing e-commerce and online payment solutions with various global IT services providers. His articles aim to instill a passion for innovative technologies in others by providing practical advice and using an engaging writing style.

    This tutorial shows how to display disk usage from a command line in Linux. It is important to know how much.

    The Linux kernel is much like the central brain of the operating system. Although it is open-source, meaning.

    There are many different tools for monitoring network traffic on a Linux server. Each option has its.

    Reducing server response time to the bare minimum is one of the primary goals of website owners and SEO.

    Источник

Оцените статью
Adblock
detector