Linux下查询进程占用的内存方法总结,假设现在有一个「php-cgi」的进程 ,进程id为「25282」。
现在想要查询该进程占用的内存大小。linux命令行下有很多的工具进行查看,现总结常见的几种方式。
求和得到实际占用物理内存为 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 99awk 过滤 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 #输出列信息 PID 25282 用户 nobody 虚拟内存 428M 物理内存 110M 110*1024= 112640 「和前面计算出来的值基本一致」 共享内存 93M 进程使用的物理内存和总内存的百分比 1.9 % PID:进程的ID USER:进程所有者 PR:进程的优先级别,越小越优先被执行 NInice:值 VIRT:进程占用的虚拟内存 RES:进程占用的物理内存 SHR:进程使用的共享内存 S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数 %CPU:进程占用CPU的使用率 %MEM:进程使用的物理内存和总内存的百分比 TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。 COMMAND:进程启动命令名称 按P PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 16036 root 20 0 8902m 8.6g 480 R 100.0 36.6 0:33.15 redis-server 12934 root 20 0 8902m 8.6g 1072 S 5.5 36.6 285:37.81 redis-server 969 root 20 0 0 0 0 D 4.2 0.0 277:14.85 flush-252:16 1304 root 23 3 1689m 50m 3264 S 4.2 0.2 1445:03 xs-searchd 1294 root 20 0 14928 928 584 S 3.5 0.0 635:05.31 xs-indexd 1287 nobody 20 0 12884 772 576 S 2.8 0.0 833:11.42 dnsmasq 1302 root 23 3 1113m 39m 3244 S 0.7 0.2 1437:57 xs-searchd 4444 www 20 0 280m 43m 884 S 0.7 0.2 27:43.92 nginx 1 root 20 0 19232 1160 868 S 0.0 0.0 0:06.75 init按 P .表示按cpu排序,默认也是按cpu排序
按M PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 12934 root 20 0 8902m 8.6g 1072 S 6.0 36.6 285:39.77 redis-server 16036 root 20 0 8902m 8.6g 480 R 100.0 36.6 1:11.42 redis-server 1236 www 20 0 1053m 209m 6556 S 0.0 0.9 4:40.70 php-cgi 1231 www 20 0 1034m 146m 6536 S 0.0 0.6 4:20.82 php-cgi 1184 www 20 0 1043m 119m 6584 S 0.0 0.5 4:21.85 php-cgi