In Ubuntu, you can check the RAM (Random Access Memory) usage of your system with multiple methods available via both the GUI (Graphical User Interface) and the command line. Checking the memory usage on Ubuntu server is quite a straightforward process.
Understanding the amount of memory used and available is essential for troubleshooting and optimizing your web server performance since RAM is a vital system component that provides fast read and write access to a storage medium. Regularly monitoring this metric can aid in diagnosing potential system issues, optimizing server performance, and determining the necessity for a RAM upgrade.
In this quick guide, we will elucidate various prevalent methods to inspect RAM usage on Ubuntu, employing an array of commands and tools, ensuring you have a comprehensive understanding of how to monitor it on your Linux system.
Let’s get started!
Option 1: Check RAM Using the “free” Command
The “free” command displays the amount of free and used memory in the system. To use this command, open a terminal and type the following command:
free
The output will display the total amount of RAM, used RAM, free RAM, and shared memory. The output will also show the buffers and cached memory.
root@geeks:~# free total used free shared buff/cache available Mem: 16424164 966948 14938512 81844 518704 15102152 Swap: 0 0 0
Option 2: Check RAM Using the “top” Command
The “top” command displays the system processes and their resource usage, including RAM usage. To use this command, open a terminal and type the following command:
top
The output will display the list of processes running on the system, including their PID, user, CPU usage, and RAM usage. You’ll see memory usage displayed as KiB Mem and KiB Swap.
top - 13:23:44 up 20 days, 21:24, 1 user, load average: 0.00, 0.00, 0.00 Tasks: 176 total, 1 running, 109 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 16424164 total, 11720752 free, 1438952 used, 3264460 buff/cache KiB Swap: 0 total, 0 free, 0 used. 14579664 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2416 root 20 0 42812 3960 3304 R 0.3 0.0 0:00.02 top 1 root 20 0 225268 8920 6560 S 0.0 0.1 0:46.62 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.60 kthreadd 4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H 6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_wq 7 root 20 0 0 0 0 S 0.0 0.0 0:01.82 ksoftirqd/0 8 root 20 0 0 0 0 I 0.0 0.0 3:09.90 rcu_sched 9 root 20 0 0 0 0 I 0.0 0.0 0:00.00 rcu_bh 10 root rt 0 0 0 0 S 0.0 0.0 0:00.73 migration/0 11 root rt 0 0 0 0 S 0.0 0.0 0:04.07 watchdog/0 12 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/0 13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/1 14 root rt 0 0 0 0 S 0.0 0.0 0:03.22 watchdog/1 15 root rt 0 0 0 0 S 0.0 0.0 0:00.76 migration/1 16 root 20 0 0 0 0 S 0.0 0.0 0:00.92 ksoftirqd/1 18 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/1:0H 19 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/2 20 root rt 0 0 0 0 S 0.0 0.0 0:03.19 watchdog/2 21 root rt 0 0 0 0 S 0.0 0.0 0:00.77 migration/2 22 root 20 0 0 0 0 S 0.0 0.0 0:00.90 ksoftirqd/2 24 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/2:0H 25 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/3 26 root rt 0 0 0 0 S 0.0 0.0 0:03.11 watchdog/3 27 root rt 0 0 0 0 S 0.0 0.0 0:00.78 migration/3 28 root 20 0 0 0 0 S 0.0 0.0 0:00.96 ksoftirqd/3 30 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/3:0H 31 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/4 32 root rt 0 0 0 0 S 0.0 0.0 0:03.04 watchdog/4 33 root rt 0 0 0 0 S 0.0 0.0 0:00.80 migration/4 34 root 20 0 0 0 0 S 0.0 0.0 0:00.90 ksoftirqd/4
Option 3: Check RAM Using the “htop” Command
The “htop” command is an enhanced version of the “top” command, which displays the system processes and their resource usage in a more user-friendly way. To use this command, open a terminal and type the following command:
apt-get install htop htop
The output will display the list of processes running on the system, including their PID, user, CPU usage, and RAM usage.
1 [ 0.0%] 5 [ 0.0%] 2 [| 0.7%] 6 [| 0.7%] 3 [ 0.0%] 7 [ 0.0%] 4 [ 0.0%] 8 [ 0.0%] Mem[|||||||||||||||| 1.48G/15.7G] Tasks: 63, 127 thr; 1 running Swp[ 0K/0K] Load average: 0.00 0.00 0.00 Uptime: 20 days, 21:21:36 PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command 1145 root 20 0 32248 4808 3876 R 0.7 0.0 0:00.37 htop 1112 root 20 0 870M 26976 10148 S 0.7 0.2 1h11:32 /usr/bin/python3 /usr/bin/fail2ban-server -xf start 472 root 19 -1 395M 251M 239M S 0.7 1.6 3:42.68 /lib/systemd/systemd-journald 1213 root 20 0 870M 26976 10148 S 0.7 0.2 10:29.64 /usr/bin/python3 /usr/bin/fail2ban-server -xf start 1721 root 20 0 103M 6812 5840 S 0.7 0.0 0:00.01 sshd: [accepted] 1201 mysql 20 0 9094M 1047M 17700 S 0.0 6.5 47:05.51 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid 1234 root 20 0 870M 26976 10148 S 0.0 0.2 10:27.77 /usr/bin/python3 /usr/bin/fail2ban-server -xf start 1214 root 20 0 870M 26976 10148 S 0.0 0.2 10:17.40 /usr/bin/python3 /usr/bin/fail2ban-server -xf start 1235 root 20 0 870M 26976 10148 S 0.0 0.2 12:40.85 /usr/bin/python3 /usr/bin/fail2ban-server -xf start 1056 messagebu 20 0 50412 4736 3768 S 0.0 0.0 1:24.34 /usr/bin/dbus-daemon --system --address=systemd: --nofork --no 1087 root 20 0 282M 6568 5776 S 0.0 0.0 0:40.59 /usr/lib/policykit-1/polkitd --no-debug 1541 mysql 20 0 9094M 1047M 17700 S 0.0 6.5 0:53.64 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid 7150 www-data 20 0 434M 106M 91368 S 0.0 0.7 0:03.17 /usr/sbin/apache2 -k start 3028 www-data 20 0 88640 15588 6100 S 0.0 0.1 15:07.81 nginx: worker process 17259 www-data 20 0 432M 105M 92360 S 0.0 0.7 0:02.17 /usr/sbin/apache2 -k start 1240 root 20 0 870M 26976 10148 S 0.0 0.2 5:13.80 /usr/bin/python3 /usr/bin/fail2ban-server -xf start 27244 mysql 20 0 9094M 1047M 17700 S 0.0 6.5 0:20.36 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid 1239 root 20 0 870M 26976 10148 S 0.0 0.2 4:09.77 /usr/bin/python3 /usr/bin/fail2ban-server -xf start 1238 root 20 0 870M 26976 10148 S 0.0 0.2 4:07.15 /usr/bin/python3 /usr/bin/fail2ban-server -xf start 1244 root 20 0 870M 26976 10148 S 0.0 0.2 4:07.28 /usr/bin/python3 /usr/bin/fail2ban-server -xf start 1538 mysql 20 0 9094M 1047M 17700 S 0.0 6.5 1:39.13 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid 984 root 20 0 103M 7120 6128 S 0.0 0.0 0:00.04 sshd: root@pts/0 1539 mysql 20 0 9094M 1047M 17700 S 0.0 6.5 1:09.05 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid 10277 mysql 20 0 9094M 1047M 17700 S 0.0 6.5 0:45.94 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid 1540 mysql 20 0 9094M 1047M 17700 S 0.0 6.5 1:14.24 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid
Option 4. Check RAM Using the `vmstat` Command
vmstat is a tool that reports virtual memory statistics. It provides information about processes, memory, paging, block IO, traps, and CPU activity.
To use vmstat, simply type:
vmstat
Look at the “swpd” (swap used) and “free” (free memory) columns for details on memory usage.
root@geeks:~# vmstat procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 11715776 193944 3070816 0 0 0 9 0 3 0 0 100 0 0
Option 5. Check RAM Using the `cat` Command with `/proc/meminfo`
The /proc/meminfo file contains detailed information about the system’s memory usage.
To view its contents, use:
cat /proc/meminfo
This will display a detailed breakdown of your system’s memory, including total, free, used, and other memory-related statistics.
root@geeks:~# cat /proc/meminfo MemTotal: 16424164 kB MemFree: 11727596 kB MemAvailable: 14587452 kB Buffers: 193944 kB Cached: 2770224 kB SwapCached: 0 kB Active: 2908184 kB Inactive: 1335364 kB Active(anon): 1369208 kB Inactive(anon): 6508 kB Active(file): 1538976 kB Inactive(file): 1328856 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 0 kB Writeback: 0 kB AnonPages: 1279404 kB Mapped: 293980 kB Shmem: 96340 kB Slab: 375684 kB SReclaimable: 301232 kB SUnreclaim: 74452 kB KernelStack: 5008 kB PageTables: 19040 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 8212080 kB Committed_AS: 6095528 kB VmallocTotal: 34359738367 kB VmallocUsed: 0 kB VmallocChunk: 0 kB HardwareCorrupted: 0 kB AnonHugePages: 0 kB ShmemHugePages: 0 kB ShmemPmdMapped: 0 kB CmaTotal: 0 kB CmaFree: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 235376 kB DirectMap2M: 7104512 kB DirectMap1G: 11534336 kB
Option 6: Check RAM Using the System Monitor
The System Monitor is a graphical tool that displays the system processes and resource usage. To use this tool, go to the Applications menu, click on the System Tools, and select the System Monitor. In the System Monitor, go to the Resources tab, and you will see the RAM usage and other resource usage information.
Option 7. Check RAM Using the `gnome-system-monitor`
If you’re using the GNOME desktop environment, you can use the gnome-system-monitor:
Press Alt + F2, type gnome-system-monitor, and press Enter. Navigate to the “Resources” tab to view memory usage.
Option 8. Check RAM Using `glances`
glances is an advanced system monitoring tool that provides a comprehensive overview of various system resources, including memory.
To install glances, use:
apt install glances
Once installed, run it by typing:
glances
Option 9. Check RAM Using `nmon`
nmon is another system monitoring tool that provides information about various system resources, including memory.
To install nmon, use:
apt install nmon
After installation, run it by typing:
nmon
Press ‘m’ to view memory statistics.
Option 10. Check RAM Using `smem`
smem provides memory usage reports with a focus on “proportional set size” (PSS), which is a more accurate representation of the memory being used by applications and processes.
To install smem, use:
apt install smem
Run it by simply typing:
smem
Commands Mentioned:
- free – a command that displays the amount of free and used memory in the system.
- top – a command that displays the system processes and their resource usage, including RAM usage.
- htop – an enhanced version of the “top” command that displays the system processes and their resource usage in a more user-friendly way.
- cat /proc/meminfo – Shows detailed information about the system’s memory usage.
- gnome-system-monitor – Opens the GNOME system monitor for graphical representation of system resources, including memory.
- glances – Runs the `glances` tool to view comprehensive system resource usage.
- nmon – Runs the `nmon` tool for system monitoring, press ‘m’ to view memory statistics.
- smem – Runs the `smem` tool to view memory usage based on proportional set size.
Conclusion:
Monitoring RAM usage on Ubuntu is straightforward, whether you prefer using the graphical interface or the command line. Regularly checking your RAM can help ensure your system runs smoothly and allows you to make informed decisions about potential upgrades or optimizations. Remember, understanding your system’s resources is key to maintaining its health and performance.
In this guide, we have gone through various ways to check the RAM on Ubuntu using different commands and tools. By using these commands and tools, you can easily obtain the necessary information about the RAM usage of your system.
If you’re on the hunt for the best web hosting solutions tailored for Ubuntu, look no further. We’ve done the heavy lifting for you. After extensive testing and research, we’ve compiled a definitive list of the top Ubuntu hosting providers for 2023. Make sure to check out our “Best Ubuntu Hosting 2023” guide to ensure your projects are powered by the best in the business.
If you have any questions or suggestions, feel free to comment below.
FAQs
-
Why is it important to monitor memory usage on Ubuntu?
Monitoring memory usage on Ubuntu helps in understanding the system’s performance, identifying potential bottlenecks, and ensuring that applications run smoothly. Regular checks can also help in troubleshooting issues, optimizing system performance, and determining if there’s a need for a RAM upgrade.
-
What’s the difference between `top` and `htop`?
Both `top` and `htop` are system monitoring tools, but `htop` provides a more user-friendly interface with color-coded outputs and allows for interactive process management. While `top` provides a static view, `htop` offers a real-time, dynamic display and supports mouse operations.
-
How can I check memory usage using the graphical interface on Ubuntu?
You can use the “System Monitor” tool, which is Ubuntu’s default system resource and process monitoring tool. Navigate to the Ubuntu Dash or Show Applications, search for “System Monitor”, open it, and click on the “Resources” tab to view memory usage.
-
What is “proportional set size” (PSS) in `smem`?
Proportional Set Size (PSS) is a metric used by `smem` to provide a more accurate representation of the memory being used by applications and processes. PSS calculates the memory usage of each process, considering shared libraries, and divides it proportionally among the processes using those libraries. This gives a clearer picture of the actual memory footprint of processes.
-
Why might I see different memory values in different tools?
Different tools might display varying memory values due to the way they calculate and represent memory usage. Some tools might show raw values, while others account for buffers, caches, and shared memory. It’s essential to understand the metrics each tool provides to interpret the data accurately.