求一个程序所有进程的内存使用量之和?

求一个程序所有进程的内存使用量之和?

我们怎样才能统计一个程序所有进程的内存使用情况呢?

例如,我打开了许多网页的 Chrome 选项卡,每个选项卡运行不同的进程。如何获取所有 Chrome 标签页的内存使用总和?请注意,Chrome 的可执行文件位于/opt/google/chrome/chrome我的 Ubuntu 上。

答案1

一种方便的方法是使用在顶上。在顶部,您可以键入P查看每个程序像这样的统计数据:

                                                                         PAUSED
NPROCS  SYSCPU  USRCPU   VSIZE  RSIZE   RDDSK  WRDSK  SNET  MEM CMD         1/4
    17   1.14s   8.06s   14.3G   2.7G       ?      ?     ?  35% chrome
     1   0.30s   0.30s    2.6G   1.9G       ?      ?     ?  25% Xorg
     1   0.09s   1.15s    1.8G 329.7M       ?      ?     ?   4% gnome-shell
     1   0.00s   0.07s  994.8M 257.2M       ?      ?     ?   3% thunderbird
     1   0.00s   0.00s    1.3G 162.4M       ?      ?     ?   2% soffice.bin
     2   0.00s   0.00s    1.2G 86736K       ?      ?     ?   1% gvim
     1   0.00s   0.01s    1.0G 64724K       ?      ?     ?   1% owncloud
     1   0.00s   0.00s  970.3M 59908K       ?      ?     ?   1% evolution-cale
     1   0.00s   0.00s  675.7M 48404K       ?      ?     ?   1% tracker-extrac
     1   0.03s   0.03s  581.0M 47080K       ?      ?     ?   1% xchat
     2   0.00s   0.00s   84.2G 45292K       ?      ?     ?   1% nacl_helper

输入M每个进程的内存统计信息。

                                                                         PAUSED
  PID MINFLT  MAJFLT VSTEXT   VSIZE  RSIZE   VGROW  RGROW   MEM  CMD        1/5
 1069  38118       0     0K    2.6G   1.9G      0K    40K   25%  Xorg
14702     20       0 91595K  939.1M 427.0M      0K     0K    5%  chrome
 3755     39       0    11K    1.8G 329.7M      0K     0K    4%  gnome-shell
14669   7804       0 91595K    1.8G 293.1M      0K  -136K    4%  chrome
15530    477       0 91595K    1.1G 292.6M  -8196K  -156K    4%  chrome
 3932      6       0    96K  994.8M 257.2M      0K     0K    3%  thunderbird
15436   7434       0 91595K  978.4M 228.5M  -1024K  -212K    3%  chrome
14821   2129       0 91595K    1.0G 220.2M   1024K  1936K    3%  chrome
15084    213       0 91595K  890.7M 211.9M      0K     0K    3%  chrome
15129     58       0 91595K  915.4M 208.1M      0K     0K    3%  chrome
14729     13       0 91595K    1.1G 188.0M      0K     0K    2%  chrome
15474   2080       0 91595K  858.5M 166.0M      0K  -800K    2%  chrome
11220      0       0     2K    1.3G 162.4M      0K     0K    2%  soffice.bin

键入H以获得可用命令的简要帮助。键入A以切换仅活动/所有进程的统计信息收集,Z以在调查之前暂停自动更新(PAUSED启用后可在右上角看到)。

答案2

您可以将 ps 命令与其他命令一起使用,如下所示:

ps -eo size,command --sort -size | grep chromium | awk '{ hr=$1/1024 ; sum +=hr} END {print sum}'

对于日常用例,创建一个文件(我在这里将其命名为 memsum!)并将其放入:

ps -eo size,command --sort -size | grep $1 | awk '{ hr=$1/1024 ; sum +=hr; echo $1} END {print sum}'
#                                       ^this $1 will come from runtime argument

然后在其上设置x标志(使其可执行):

chmod +x memsum

并使用它:

./memsum chromium
./memsum httpd

答案3

以下命令 grep ps 的输出,打印该输出,并使用 awk 对列中的值求和。查看 ps 的输出以及总和非常有用,可以验证正在对正确的进程集进行求和。

ps xuaw --cols=80|grep -e chrome -e COMMAND|grep -v grep |awk '{m=$5;sum += m;print} END {print "Total VSZ: " sum}'

这是示例输出:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
2006     29273  0.0  0.3 701716 82948 ?        Sl   Oct30   1:44 /opt/google/chrome/chrome
2006     29288  0.0  0.0 351768  6892 ?        S    Oct30   0:00 /opt/google/chrome/chrome
2006     29289  0.0  0.0   6284   332 ?        S    Oct30   0:00 /opt/google/chrome/chrome-sandbox /opt/google/chrome/chrome --type=
2006     29290  0.0  0.0 398284 20104 ?        S    Oct30   0:00 /opt/google/chrome/chrome --type=zygote
2006     29294  0.0  0.0 125500  4684 ?        S    Oct30   0:00 /opt/google/chrome/nacl_helper_bootstrap /opt/google/chrome/nacl_he
2006     29295  0.0  0.0 406480  7300 ?        S    Oct30   0:00 /opt/google/chrome/chrome --type=zygote
2006     29432  0.0  0.0 989216 19464 ?        Sl   Oct30   0:01 /opt/google/chrome/chrome --type=renderer --lang=en-US --force-fiel
2006     29772  0.0  0.1 1004072 32408 ?       Sl   Oct30   0:09 /opt/google/chrome/chrome --type=renderer --lang=en-US --force-fiel
2006     29780  0.0  0.0 389592 19404 ?        Sl   Oct30   0:00 /opt/google/chrome/chrome --type=service
2006     29788  0.0  0.0 938204 21080 ?        Sl   Oct30   0:00 /opt/google/chrome/chrome --type=ppapi-broker --channel=29273.5.113
Total VSZ: 5311116

答案4

您可以使用qps。它显示了每个进程的总使用情况。

            SS#1

参考

相关内容