pmap用来打印进程地址空间占用。通常也可以通过如下命令来查看:
cat /proc/self/maps
但用pmap包含更多的信息,显示结果也更直观:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
| $ pmap -d 4827
4827: bash
Address Kbytes Mode Offset Device Mapping
0000000000400000 896 r-x-- 0000000000000000 008:00005 bash
00000000006e0000 4 r---- 00000000000e0000 008:00005 bash
00000000006e1000 36 rw--- 00000000000e1000 008:00005 bash
00000000006ea000 24 rw--- 0000000000000000 000:00000 [ anon ]
0000000001a8d000 5388 rw--- 0000000000000000 000:00000 [ anon ]
00007f1c6c5cd000 48 r-x-- 0000000000000000 008:00005 libnss_files-2.15.so
00007f1c6c5d9000 2044 ----- 000000000000c000 008:00005 libnss_files-2.15.so
00007f1c6c7d8000 4 r---- 000000000000b000 008:00005 libnss_files-2.15.so
00007f1c6c7d9000 4 rw--- 000000000000c000 008:00005 libnss_files-2.15.so
00007f1c6c7da000 40 r-x-- 0000000000000000 008:00005 libnss_nis-2.15.so
00007f1c6c7e4000 2048 ----- 000000000000a000 008:00005 libnss_nis-2.15.so
00007f1c6c9e4000 4 r---- 000000000000a000 008:00005 libnss_nis-2.15.so
00007f1c6c9e5000 4 rw--- 000000000000b000 008:00005 libnss_nis-2.15.so
00007f1c6c9e6000 92 r-x-- 0000000000000000 008:00005 libnsl-2.15.so
00007f1c6c9fd000 2044 ----- 0000000000017000 008:00005 libnsl-2.15.so
00007f1c6cbfc000 4 r---- 0000000000016000 008:00005 libnsl-2.15.so
00007f1c6cbfd000 4 rw--- 0000000000017000 008:00005 libnsl-2.15.so
00007f1c6cbfe000 8 rw--- 0000000000000000 000:00000 [ anon ]
00007f1c6cc00000 32 r-x-- 0000000000000000 008:00005 libnss_compat-2.15.so
00007f1c6cc08000 2044 ----- 0000000000008000 008:00005 libnss_compat-2.15.so
00007f1c6ce07000 4 r---- 0000000000007000 008:00005 libnss_compat-2.15.so
00007f1c6ce08000 4 rw--- 0000000000008000 008:00005 libnss_compat-2.15.so
00007f1c6ce09000 7052 r---- 0000000000000000 008:00005 locale-archive
00007f1c6d4ec000 1748 r-x-- 0000000000000000 008:00005 libc-2.15.so
00007f1c6d6a1000 2048 ----- 00000000001b5000 008:00005 libc-2.15.so
00007f1c6d8a1000 16 r---- 00000000001b5000 008:00005 libc-2.15.so
00007f1c6d8a5000 8 rw--- 00000000001b9000 008:00005 libc-2.15.so
00007f1c6d8a7000 20 rw--- 0000000000000000 000:00000 [ anon ]
00007f1c6d8ac000 8 r-x-- 0000000000000000 008:00005 libdl-2.15.so
00007f1c6d8ae000 2048 ----- 0000000000002000 008:00005 libdl-2.15.so
00007f1c6daae000 4 r---- 0000000000002000 008:00005 libdl-2.15.so
00007f1c6daaf000 4 rw--- 0000000000003000 008:00005 libdl-2.15.so
00007f1c6dab0000 136 r-x-- 0000000000000000 008:00005 libtinfo.so.5.9
00007f1c6dad2000 2048 ----- 0000000000022000 008:00005 libtinfo.so.5.9
00007f1c6dcd2000 16 r---- 0000000000022000 008:00005 libtinfo.so.5.9
00007f1c6dcd6000 4 rw--- 0000000000026000 008:00005 libtinfo.so.5.9
00007f1c6dcd7000 136 r-x-- 0000000000000000 008:00005 ld-2.15.so
00007f1c6ded7000 12 rw--- 0000000000000000 000:00000 [ anon ]
00007f1c6def0000 28 r--s- 0000000000000000 008:00005 gconv-modules.cache
00007f1c6def7000 8 rw--- 0000000000000000 000:00000 [ anon ]
00007f1c6def9000 4 r---- 0000000000022000 008:00005 ld-2.15.so
00007f1c6defa000 8 rw--- 0000000000023000 008:00005 ld-2.15.so
00007fffe147d000 132 rw--- 0000000000000000 000:00000 [ stack ]
00007fffe15ff000 4 r-x-- 0000000000000000 000:00000 [ anon ]
ffffffffff600000 4 r-x-- 0000000000000000 000:00000 [ anon ]
mapped: 30276K writeable/private: 5668K shared: 28K
|
可以看出,这个进程的虚拟地址空间大小微30276k,实际占用的物理内存微5668k。