Linux Sort By Memory in TOP Command
Top is a very powerful command to periodically display a sorted list of system processes. The default sorting key is %CPU on Linux. Below we collect 3 ways to sort processes by memory.
Boost Your Website Speed!
If you want your website to run as fast as ours, consider trying Cloudways. Their powerful cloud infrastructure and optimized stack deliver exceptional performance. Free migration!3 Ways to Sort by Memory in Top Command
- press shift+m after running the top command
- sort mem usage per process in the interactive menu. More details are below.
- run command top -o +%mem
Tip: A leading ‘+’ will force sorting high to low, whereas a ‘-” will ensure a low to high ordering.
Sort By memory Usage per-process in the interactive menu
- press Shift+f to enter the interactive menu
- press the up or down arrow until the %MEM choice is highlighted
- press s to select %MEM choice
- press enter to save your selection
- press q to exit the interactive menu
Sort By Memory in top batch mode
We can use top batch mode to capture the process info. The following example will output the highest memory process in batch mode.
- for i in {1..10};do date; top -b -o +%MEM | head -n 17|tail -11;sleep 5;done
Sort By VIRT RES Memory Metrics in top command
We have the following metrics to check memory resources in the top command.
- %MEM: The percentage of the system’s physical memory in use by this process
- VIRT: Virtual memory size
- RES: Resident set size: the total physical memory in use by this process
Here is more info about VIRT and RES.
- VIRT: Called VSZ in the ps command and VIRT in top, this is the total amount of memory mapped by a process. It is the sum of all the regions shown in /proc/<PID>/map.
- RES: Called RSS in ps and RES in top, this is the sum of memory that is mapped to physical pages of memory. This gets closer to the actual memory budget of the process.
So we can also use the following commands to sort these two memory metrics.
- for i in {1..10};do date; top -b -o +VIRT | head -n 17|tail -11;sleep 5;done
- for i in {1..10};do date; top -b -o +RES | head -n 17|tail -11;sleep 5;done
Linux Learning Guide: