如下三种方法比较靠谱
1.使用TOP查看:
top -d 1 -p 1128
top - 15:32:10 up 13 days, 20:32, 6 users, load average: 0.74, 0.87, 0.89
Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.4%us, 0.1%sy, 0.0%ni, 99.4%id, 0.0%wa, 0.0%hi, 0.1%si, 0.0%st
Mem: 132069028k total, 74525476k used, 57543552k free, 4405000k buffers
Swap: 65536228k total, 0k used, 65536228k free, 58109180k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1128 oracle 15 0 86.7g 40m 37m S 0.0 0.0 0:00.03 oracle
RES对应的就是占用的物理内存大小
2.ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | grep pid
ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | grep 1128
1128 oracle oraclebizdb1 (LOCAL=NO) 0.0 4229690920168 14:55 oracle 1000
16183 init.ohasd /bin/sh /etc/init.d/init.oh 0.0 1128 10792 Jun12 root 0
18986 oracle oraclebizdb1 (LOCAL=NO) 0.0 1101128 90922300 Jun21 oracle 1000
21053 oracle oraclebizdb1 (LOCAL=NO) 0.7 112820 90921192 15:58 oracle 1000
查看所有进程使用大小
ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | grep oracle | sort -nrk5
3.查看/proc/pid/status
cat /proc/1128/status
Name: oracle
State: S (sleeping)
SleepAVG: 98%
Tgid: 1128
Pid: 1128
PPid: 1
TracerPid: 0
Uid: 1000 1000 1000 1000
Gid: 1000 1000 1000 1000
FDSize: 64
Groups: 1000 1001
VmPeak: 90920168 kB
VmSize: 90920168 kB
VmLck: 0 kB
VmHWM: 41448 kB
VmRSS: 41448 kB # 41448/1024=40M VmData: 3184 kB VmStk: 84 kB VmExe: 155144 kB VmLib: 12228 kB VmPTE: 3984 kB StaBrk: 1c210000 kB Brk: 1c2b7000 kB StaStk: 7fffcc7087b0 kB Threads: 1 SigQ: 9/1064960 SigPnd: 0000000000000000 ShdPnd: 0000000000000000 SigBlk: 0000000000010000 SigIgn: 0000000006005207 SigCgt: 00000001c9c02cf8 CapInh: 0000000000000000 CapPrm: 0000000000000000 CapEff: 0000000000000000 Cpus_allowed: 00000000,00000000,00000000,00000000,00000000,0000ffff,ffffffff,ffffffff Mems_allowed: 00000000,0000000f