Memory

使用 top 顯示每個程序的絕對記憶體使用情況

  • August 19, 2021

預設情況下,top將為每個程序顯示該程序使用的物理記憶體比例:

top - 12:39:34 up 87 days, 18:25,  3 users,  load average: 4.73, 4.89, 4.23
Tasks: 255 total,   2 running, 242 sleeping,   0 stopped,  11 zombie
%Cpu(s): 38.2 us, 37.2 sy,  0.0 ni,  2.8 id, 13.4 wa,  0.0 hi,  8.4 si,  0.0 st
MiB Mem :   3916.2 total,    132.1 free,   3659.9 used,    124.2 buff/cache
MiB Swap:   4096.0 total,   2127.0 free,   1969.0 used.     78.2 avail Mem 

 PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND   
28095 michi     20   0 4428340   2.5g   4604 S 109.5  66.5   2555:15 rslsync   
 425 root       1 -19       0      0      0 D  14.4   0.0 851:42.04 z_wr_iss  
 143 root      20   0       0      0      0 D   3.9   0.0 114:08.83 usb-stora+
 418 root       0 -20       0      0      0 S   3.3   0.0 541:53.24 z_rd_int  
 421 root       0 -20       0      0      0 S   3.3   0.0 541:54.99 z_rd_int  
 422 root       0 -20       0      0      0 S   3.3   0.0 541:49.18 z_rd_int  

我如何才能顯示該列中每個程序使用的絕對記憶體量(即MEM% * <total physical memory>)?例如:

[...]
 PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND   
28095 michi     20   0 4428340   2.5g   4604 S 109.5  3.1g   2555:15 rslsync   
 425 root       1 -19       0      0      0 D  14.4    4k 851:42.04 z_wr_iss  
[...]

每個程序消耗的 RAM 量在“RES”(駐留記憶體大小)列中指示。引用手冊頁

虛擬地址空間 (VIRT) 的子集,表示任務目前正在使用的非交換物理記憶體。

以“rslsync”程序為例,總記憶體(3916.2 MiB)的 66.5% 為 2604.3 MiB,即 2.5 GiB。這是 RES 列中的值。

引用自:https://unix.stackexchange.com/questions/665323