本文来自:http://www.lifecrunch.biz/archives/216
linux 中查看 某个单进程程序运行所占内存所占的内存空间,设pid为进程id(ps aux| grep ‘processName’获得),查看/proc/pid/statm和/proc/pid/status即可。
/proc/[pid]/statm
Provides information about memory usage, measured in pages.
The
columns are:
size
total program size
(same as VmSize in /proc/[pid]/status)
resident
resident set size
(same as VmRSS in /proc/[pid]/status)
share
shared pages (from shared mappings)
text
text (code)
lib
library (unused in Linux 2.6)
data
data + stack
dt
dirty pages (unused in Linux 2.6)
/proc/[pid]/status
Provides much of the information in /proc/[pid]/stat and
/proc/[pid]/statm in a format that's easier for humans to parse.
Here's an example:
$ cat /proc/$$/status
Name:
bash
State:
S (sleeping)
Tgid:
3515
Pid:
3515
PPid:
3452
TracerPid:
0
Uid:
1000
1000
1000
1000
Gid:
100
100
100
100
FDSize: 256
Groups: 16 33 100
VmPeak:
9136 kB
VmSize:
7896 kB
VmLck:
0 kB
VmHWM:
7572 kB
VmRSS:
6316 kB
VmData:
5224 kB
VmStk:
88 kB
VmExe:
572 kB
VmLib:
1708 kB
VmPTE:
20 kB
Threads:
1
SigQ:
0/3067
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000010000
SigIgn: 0000000000384004
SigCgt: 000000004b813efb
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: ffffffffffffffff
Cpus_allowed:
00000001
Cpus_allowed_list:
0
Mems_allowed:
1
Mems_allowed_list:
0
voluntary_ctxt_switches:
150
nonvoluntary_ctxt_switches:
545
The fields are as follows:
* Name: Command run by this process.
* State: Current state of the process.
One of "R (running)", "S
(sleeping)", "D (disk sleep)", "T (stopped)", "T (tracing stop)", "Z(zombie)", or "X (dead)".
* Tgid: Thread group ID (i.e., Process ID).
* Pid: Thread ID (see gettid(2)).
* TracerPid: PID of process tracing this process (0 if not being
traced).
* Uid, Gid: Real, effective, saved set, and file system UIDs (GIDs).
* FDSize: Number of file descriptor slots currently allocated.
* Groups: Supplementary group list.
* VmPeak: Peak virtual memory size.
* VmSize: Virtual memory size.
* VmLck: Locked memory size (see mlock(3)).
* VmHWM: Peak resident set size ("high water mark").
* VmRSS: Resident set size.
* VmData, VmStk, VmExe: Size of data, stack, and text segments.
* VmLib: Shared library code size.
* VmPTE: Page table entries size (since Linux 2.6.10).
* Threads: Number of threads in process containing this thread.
* SigPnd, ShdPnd: Number of signals pending for thread and for process
as a whole (see pthreads(7) and signal(7)).
* SigBlk, SigIgn, SigCgt: Masks indicating signals being blocked,
ignored, and caught (see signal(7)).
* CapInh, CapPrm, CapEff: Masks of capabilities enabled in inheritable,
permitted, and effective sets (see capabilities(7)).
* CapBnd: Capability Bounding set (since kernel 2.6.26, see
capabilities(7)).
* Cpus_allowed: Mask of CPUs on which this process may run (since Linux
2.6.24, see cpuset(7)).
* Cpus_allowed_list: Same as previous, but in "list format" (since
Linux 2.6.26, see cpuset(7)).
* Mems_allowed: Mask of memory nodes allowed to this process (since
Linux 2.6.24, see cpuset(7)).
* Mems_allowed_list: Same as previous, but in "list format" (since
Linux 2.6.26, see cpuset(7)).
* voluntary_context_switches, nonvoluntary_context_switches: Number of voluntary and involuntary context switches (since Linux 2.6.23).