Loading...
墨滴

cpgsmldl

2021/06/06  阅读:43  主题:橙心

Linux如何查看内存占用情况

Linux下查看某一个进程所占用的内存,首先可以通过 ps 命令找到进程 id,比如 ps -ef | grep sender_main_test_strategy_newhot.py 可以看到进程对应的 id 为 30501。

ylhao    30501     1  0 Jun04 ?        00:00:57 python sender_main_test_strategy_newhot.py

使用 top 命令查看进程所占用的内存 top -p 30501

top - 16:56:10 up 367 days, 20:00,  5 users,  load average: 4.75, 5.86, 5.19
Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
Cpu(s):  9.0% us,  3.3% sy,  0.3% ni, 87.1% id,  0.2% wa,  0.0% hi,  0.1% si
Mem:  132051164k total, 130817800k used,  1233364k free,   255684k buffers
Swap:        0k total,        0k used,        0k free, 68062536k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                          
30501 ylhao     20   0  171m  60m 1588 S  0.0  0.0   0:57.81 python

RES 的值为进程在运行过程中占用的内存量,这里为 60M。

某个进程占用的内存除了和别的进程共享的内存之外就是自己的独占内存了。所以要计算进程独占内存的大小只要用 RES 的值减去 SHR 值即可,一般我们只看 RES 的值,这里 SHR 的值为 1588 KB。

这里还可以动态实时的看到 CPU 和内存的占用率,这里 CPU 和内存的占用率均为 0%(这个进程基本不占用 CPU 和内存)。

按 q 键可以回到命令行。

也可以直接使用以下命令ps -aux | grep sender_main_test_strategy_newhot.py查看。

ylhao    30501  0.0  0.0 175368 61564 ?      S    Jun04   0:57 python sender_main_test_strategy_newhot.py

可以看出 CPU 占用率为 0%(第一个 0.0),内存占用率为 0%(第二个 0.0),内存占用量为 61564KB ≈ 60MB。

还可以使用命令cat /proc/30501/status查看进程的status文件,VmRSS对应的值就是物理内存占用量,这里为 61564KB ≈ 60MB。

Name:   python
State:  S (sleeping)
Tgid:   30501
Pid:    30501
PPid:   1
TracerPid:      0
Uid:    506     506     506     506
Gid:    509     509     509     509
FDSize: 256
Groups: 509 
VmPeak:   180184 kB
VmSize:   175368 kB
VmLck:         0 kB
VmHWM:     69032 kB
VmRSS:     61564 kB
VmAnon:    59984 kB
VmFile:     1580 kB
VmData:    69840 kB
VmStk:       128 kB
VmExe:         4 kB
VmLib:      8064 kB
VmPTE:       292 kB
VmSwap:        0 kB
Threads:        1
SigQ:   11/1031618
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000001001006
SigCgt: 0000000180000000
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: ffffffffffffffff
Cpus_allowed:   ffff,ffffffff
Cpus_allowed_list:      0-47
Mems_allowed:   00000000,00000001
Mems_allowed_list:      0
voluntary_ctxt_switches:        38947
nonvoluntary_ctxt_switches:     1524

最后查看内存占用前 10 名的进程并看看是否需要@相应owner:

ps aux | sort -k4,4nr | head -n 10 

cpgsmldl

2021/06/06  阅读:43  主题:橙心

作者介绍

cpgsmldl