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 % (编辑:阜新站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |