Linux:在Linux中查看进程占用内存大小的方法

     在开发和运维过程中,经常会遇到的问题是一个进程到底占用了多大的内存。以下通过常用的2个命令来说明如何获取进程占用的内存

比如有一个java进程,它的pid=7020

$ps -ef | grep LogAgent | grep ^grep
usrapp 7020 1 0 15:23 ? 00:00:02 java -jar LogAgent.jar

1、使用ps

$ps -o vsz,rss,sz,size,pid -q7020
VSZ        RSS    SZ         SIZE        PID
4444604 39160 1111151 4268292 7020
以上显示的数字的单位是KB ,其中vsz,rss,sz,size的含义如下:
namedescription
vsz

virtual memory size of the process in KiB (1024-byte units).  Device mappings are currently excluded; this is subject to change.  (alias vsize).

rss

resident set size, the non-swapped physical memory that a task has used (in kiloBytes). (alias rssize, rsz).

sz

size in physical pages of the core image of the process.  This includes text, data, and stack space.  Device mappings are currently excluded; this is subject to change.  See vsz and rss.

sizeapproximate amount of swap space that would be required if the process were to dirty all writable pages and then be swapped out. This number is very rough!

 

其中最关注的是RSS,它是实际占用的物理内存的大小。

2、使用top

$top -n 1 -p 7020
top - 16:29:32 up 166 days, 5:59, 3 users, load average: 0.25, 0.31, 0.48
Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 3.4 sy, 0.0 ni, 96.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 7388532 total, 158576 free, 5822636 used, 1407320 buff/cache
KiB Swap: 16777212 total, 12173780 free, 4603432 used. 1012880 avail Mem
PID  USER  PR NI VIRT      RES    SHR   S %CPU %MEM TIME+  COMMAND
7020 usrapp 20 0  4444604 39160 12444 S 0.0       0.5       0:02.15 java
从执行结果可以看到:
ps. VSZ=top.VIRT
ps. RSS=top.RES

 参考文档

ps(1) - Linux manual page

top(1) - Linux manual page

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值