加入收藏 | 设为首页 | 会员中心 | 我要投稿 阜新站长网 (https://www.0418zz.com.cn/)- 管理运维、AI硬件、数据集成、云备份、负载均衡!
当前位置: 首页 > 云计算 > 正文

Linux下查询进程占用内存的方法都有哪些?

发布时间:2022-07-20 10:42:26 所属栏目:云计算 来源:互联网
导读:跟大家分享的文章是关于Linux下查询进程占用内存的方法都有哪些?假设现在有一个「php-cgi」的进程 ,进程id为「25282」。现在想要查询该进程占用的内存大
  跟大家分享的文章是关于Linux下查询进程占用内存的方法都有哪些?假设现在有一个「php-cgi」的进程 ,进程id为「25282」。现在想要查询该进程占用的内存大小。Linux命令行下有很多的工具进行查看, Linux入门新手和正在Linux学习的小伙伴快来看一看吧,希望能够对大家有所帮助!
 
  Linux下查询进程占用内存的方法都有哪些?
  一、通过进程的 status
  [root@web3_u ~]# cat /proc/25282/status
 
  Name: php-cgi
 
  State: S (sleeping)
 
  Tgid: 25282
 
  Pid: 25282
 
  PPid: 27187
 
  TracerPid: 0
 
  Uid: 99 99 99 99
 
  Gid: 99 99 99 99
 
  Utrace: 0
 
  FDSize: 256
 
  Groups: 99
 
  VmPeak: 496388 kB
 
  VmSize: 438284 kB
 
  VmLck: 0 kB
 
  VmHWM: 125468 kB
 
  VmRSS: 113612 kB
 
  VmData: 92588 kB
 
  VmStk: 100 kB
 
  VmExe: 6736 kB
 
  VmLib: 18760 kB
 
  VmPTE: 528 kB
 
  VmSwap: 0 kB
 
  Threads: 1
 
  SigQ: 0/46155
 
  SigPnd: 0000000000000000
 
  ShdPnd: 0000000000000000
 
  SigBlk: 0000000000000000
 
  SigIgn: 0000000000001000
 
  SigCgt: 0000000184000004
 
  CapInh: 0000000000000000
 
  CapPrm: 0000000000000000
 
  CapEff: 0000000000000000
 
  CapBnd: ffffffffffffffff
 
  Cpus_allowed: f
 
  Cpus_allowed_list: 0-3
 
  Mems_allowed: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001
 
  Mems_allowed_list: 0
 
  voluntary_ctxt_switches: 68245
 
  nonvoluntary_ctxt_switches: 15751
 
  VmRSS: 113612 kB 表示占用的物理内存
 
  二、通过 pmap
  [root@web3_u ~]# pmap -x 25282
 
  25282: /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf
 
  Address Kbytes RSS Dirty Mode Mapping
 
  0000000000400000 6736 2692 0 r-x-- php-cgi
 
  0000000000c93000 264 196 120 rw--- php-cgi
 
  0000000000cd5000 60 48 48 rw--- [ anon ]
 
  . . .
 
  00007fd6226bc000 4 4 4 rw--- ld-2.12.so
 
  00007fd6226bd000 4 4 4 rw--- [ anon ]
 
  00007fff84b02000 96 96 96 rw--- [ stack ]
 
  00007fff84bff000 4 4 0 r-x-- [ anon ]
 
  ffffffffff600000 4 0 0 r-x-- [ anon ]
 
  ---------------- ------ ------ ------
 
  total kB 438284 113612 107960
 
  关键信息点
 
  1、进程ID
 
  2、启动命令「/usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf」
 
  3、RSS :占用的物理内存 113612KB
 
  三、通过 smaps
  [root@web3_u ~]# cat /proc/25282/smaps | grep '^Rss:'
 
  | awk '{sum +=$2} END{print sum}'
 
  113612
 
  求和得到实际占用物理内存为 113612
 
  四、通过 ps 命令
  [root@web3_u ~]# ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid'
 
  | awk '$1 ~ /25282/'
 
  25282 php-cgi /usr/local/php/bin/php-cgi 0.0 113612 438284 Oct09 nobody 99
 
  awk 过滤 25282 进程号,得到第5列「rsz」的内存大小为「113612」
 
  输出php-cgi进程占用的物理内存,并从高到低进行排序
 
  [root@web3_u ~]# ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid'
 
  | grep php-cgi | sort -k5nr
 
  输出结果
 
  23946 php-cgi /usr/local/php/bin/php-cgi 0.0 129540 440000 Oct06 nobody 99
 
  24418 php-cgi /usr/local/php/bin/php-cgi 0.0 129336 437684 Oct06 nobody 99
 
  18973 php-cgi /usr/local/php/bin/php-cgi 0.0 129268 440176 Oct06 nobody 99
 
  17219 php-cgi /usr/local/php/bin/php-cgi 0.0 126588 439840 Oct06 nobody 99
 
  6996 php-cgi /usr/local/php/bin/php-cgi 0.0 124876 438104 Oct09 nobody 99
 
  23850 php-cgi /usr/local/php/bin/php-cgi 0.0 122984 440036 Oct09 nobody 99
 
  28310 php-cgi /usr/local/php/bin/php-cgi 0.0 122920 436456 Oct09 nobody 99
 
  其中rsz为实际内存,上例实现按内存排序,由大到小
 
  TOP 命令输出的列
 
  PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
 
  25282 nobody 20 0 428m 110m 93m S 0.0 1.9 0:34.42 php-cgi
 
  输出列信息
 
  1. PID 25282
 
  2. 用户 nobody
 
  3. 虚拟内存 428M
 
  4. 物理内存 110M 110*1024= 112640 「和前面计算出来的值基本一致」
 
  5. 共享内存 93M
 
  6. 进程使用的物理内存和总内存的百分比 1.9 %

(编辑:阜新站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读