Memory management 进程命令行使用的总内存

Memory management 进程命令行使用的总内存,memory-management,command-line,Memory Management,Command Line,我试图找到一种通过命令行查找进程使用的总内存的方法,但遇到了这个问题 top -b -n 1 | grep -i procss_name 562 procss_name 20 0 198m 128m 1548 S 0 1.7 0:00.17 procss_name 由于我需要查找内存使用情况的进程有许多分叉,因此上面的命令如下 15098 procss_name 20 0 198m 128m 1344 S 0 1.7 0:00.30 procss_

我试图找到一种通过命令行查找进程使用的总内存的方法,但遇到了这个问题

top -b -n 1 | grep -i procss_name

  562 procss_name  20   0  198m 128m 1548 S    0  1.7   0:00.17 procss_name
由于我需要查找内存使用情况的进程有许多分叉,因此上面的命令如下

15098 procss_name  20   0  198m 128m 1344 S    0  1.7   0:00.30 procss_name
15099 procss_name  20   0  198m 128m 1500 S    0  1.7   0:00.20 procss_name
15100 procss_name  20   0  198m 128m 1460 S    0  1.7   0:00.11 procss_name
29925 procss_name  20   0  198m 129m 2832 S    0  1.7   0:02.76 procss_name
29926 procss_name  20   0  199m 127m 1044 S    0  1.7   0:00.33 procss_name
我知道198M表示虚拟内存使用情况,128M表示驻留大小,1344表示共享内存使用情况,0表示%CPU,1.7表示%mem使用情况。所以我的问题是: 所有这些值都与已分叉的特定子项有关,或者是所有分叉子项的总和。
也就是说,关于mem的使用率,所有人都有1.7%。这是否意味着每个孩子使用1.7%,或者整个过程使用1.7%?

您无法从这些信息中分辨出来。你到底想知道什么?有可能找到一种方法。也考虑到进程使用的内存不同于进程结束时释放的内存。@ DavidSvurd:进程的“内存总量”(物理RAM)的使用和CPU的总使用量(由父进程及其所有子进程)操作系统无法跟踪您想要的确切信息。但您可以近似计算:
(RSS值之和)-(最小RSS值*(进程数-1))
。在这种情况下(128+128+128+129+127)-(127*4)或132MB。