如何在busybox上找到进程的常驻内存大小?


16

top在busybox上运行,它显示了所有进程及其虚拟内存大小。

如何确定每个进程使用了​​多少RAM?

Answers:


17

在busybox上,“ ps”没有“ -o”选项,但是“ ps l”包括RSS列。

如果底层操作系统是Linux,则还可以从以下位置获取给定进程的更多特定详细信息:

cat /proc/PID/status

输出看起来像这样:

名称:灰
状态:S(睡眠中)
Tgid:1990年
年份:1990
PPid:1
示踪剂:0
Uid:0 0 0 0
吉德:0 0 0 0
FD尺寸:32
团体:0 
VmPeak:1592 kB
Vm大小:1592 kB
VmLck:0 kB
VmPin:0 kB
VmHWM:552 kB
VmRSS:552 kB
VmData:268 kB
VmStk:136 kB
VmExe:688 kB
VmLib:472 kB
VmPTE:16 kB
VmSwap:0 kB
线程数:1
SigQ:14/340
签名:00000000000000000000000000000000
ShdPnd:00000000000000000000000000000000000000
信号量:00000000000000000000000000000000000000
签名:00000000000000000000000004804004
签名:000000000000000000000000000800080002
上限:0000000000000000
CapPrm:ffffffffffffffff
CapEff:ffffffffffffffff
CapBnd:ffffffffffffffff
Cpus_allowed:1
Cpus_allowed_list:0
manual_ctxt_switches:49
nonvoluntary_ctxt_switches:15

在此列表中,VmRSS是当前居民集,而VmHWM是居民集高水位标记。


自2006年以来ps一直支持BusyBox-o,但需要使用“ DESKTOP”构建选项进行构建。
JdeBP

12
ps -o pid,user,vsz,rss,comm,args

第4列(rss)是常驻集大小,即任务使用的未交换物理内存,以千字节为单位。


在busybox ps上没有-o标志
乍得G

是否有构建它的目的。请参阅安德鲁·富福德的答案。
JdeBP

-1
 ps -q pid -o rss= 

这应该工作


2
请添加您正在运行的平台。我ps没有-q选择,并且正在运行suse linux。
JamesL

1
看来,busybox的版本ps(最新提交2017年1月的4e08a12)不会有这样的选择无论是。
AdminBee

-qpidlist通过PID选择(快速模式)。这将选择其进程ID号显示在pidlist中的进程。使用此选项,ps仅读取pidlist中列出的pid的必要信息,并且不应用其他过滤规则。pid的顺序未排序并保留。在此模式下,不允许使用其他选择选项,排序和林类型列表。与q和--quick-pid相同。
Kevdog777

@ Kevdog777您能否指定在哪个平台上实现?它似乎不是POSIX的要求。此外,OP明确询问了busybox环境...
AdminBee

抱歉@AdminBee,我在这里找到了:man7.org/linux/man-pages/man1/ps.1.html,因为人们不知道这-q是什么意思。所以它只是说Linux
Kevdog777
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.