linux常用命令
内存分析工具pmap
pmap工具是linux的工具,能够查看进程用了多少内存,还能分析内存用在上面环节,对于一些长期占用内存居高不下的程序可以分析其行为,命令简单,信息简洁
使用简介
4 root@VM-0-14-centos ~]# pmap -h 5 6 Usage: 7 pmap [options] PID [PID ...] 8 9 Options: 10 -x, --extended show details 11 -X show even more details 12 WARNING: format changes according to /proc/PID/smaps 13 -XX show everything the kernel provides 14 -c, --read-rc read the default rc 15 -C, --read-rc-from=<file> read the rc from file 16 -n, --create-rc create new default rc 17 -N, --create-rc-to=<file> create new rc to file 18 NOTE: pid arguments are not allowed with -n, -N 19 -d, --device show the device format 20 -q, --quiet do not display header and footer 21 -p, --show-path show path in the mapping 22 -A, --range=<low>[,<high>] limit results to the given range 23 24 -h, --help display this help and exit 25 -V, --version output version information and exit 26 27 For more details see pmap(1).
示例
返回列说明。
- Address: 内存开始地址
- Kbytes: 占用内存的字节数(KB)
- RSS: 保留内存的字节数(KB)
- Dirty: 脏页的字节数(包括共享和私有的)(KB)
- Mode: 内存的权限:read、write、execute、shared、private (写时复制)
- Mapping: 占用内存的文件、或[anon](分配的内存)、或[stack](堆栈)
- Offset: 文件偏移
- Device: 设备名 (major:minor)
示例 ‘pmap -d 30242’
查看进程
1 root@VM-0-14-centos ~]# top 2 top - 15:31:56 up 115 days, 5:34, 1 user, load average: 0.05, 0.03, 0.05 3 Tasks: 82 total, 1 running, 81 sleeping, 0 stopped, 0 zombie 4 %Cpu(s): 0.5 us, 0.5 sy, 0.0 ni, 98.8 id, 0.2 wa, 0.0 hi, 0.0 si, 0.0 st 5 KiB Mem : 3880948 total, 1491616 free, 197496 used, 2191836 buff/cache 6 KiB Swap: 4194300 total, 4031436 free, 162864 used. 3357968 avail Mem 7 8 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 9 30242 root 20 0 1137252 82100 11936 S 0.7 2.1 1115:13 YDService 10 5586 root 20 0 161876 2228 1560 R 0.3 0.1 0:00.01 top
展示进程内存 - 设备信息
1 [root@VM-0-14-centos ~]# pmap -d 30242 2 30242: /usr/local/qcloud/YunJing/YDEyes/YDService 3 Address Kbytes Mode Offset Device Mapping 4 0000000000400000 19416 r-x-- 0000000000000000 0fd:00001 YDService 5 00000000018f5000 6520 rw--- 00000000012f5000 0fd:00001 YDService 6 0000000001f53000 540 rw--- 0000000000000000 000:00000 [ anon ] 7 0000000002206000 181088 rw--- 0000000000000000 000:00000 [ anon ] 8 000000c000000000 65536 rw--- 0000000000000000 000:00000 [ anon ] 9 00007f42d4445000 4 ----- 0000000000000000 000:00000 [ anon ] 10 00007f42d4446000 8192 rw--- 0000000000000000 000:00000 [ anon ] 11 00007f42d4c46000 4 ----- 0000000000000000 000:00000 [ anon ] 12 00007f42d4c47000 8192 rw--- 0000000000000000 000:00000 [ anon ] 13 00007f42d5447000 4 ----- 0000000000000000 000:00000 [ anon ] 14 00007f42d5448000 8448 rw--- 0000000000000000 000:00000 [ anon ] 15 00007f42d5c88000 4 ----- 0000000000000000 000:00000 [ anon ] 16 00007f42d5c89000 8192 rw--- 0000000000000000 000:00000 [ anon ] 17 00007f42d6489000 4096 rw-s- 0000000000000000 000:00007 [ anon ] 18 00007f42d6889000 4 ----- 0000000000000000 000:00000 [ anon ] 19 00007f42d688a000 8192 rw--- 0000000000000000 000:00000 [ anon ] 20 00007f42d708a000 4 ----- 0000000000000000 000:00000 [ anon ] 21 00007f42d708b000 8192 rw--- 0000000000000000 000:00000 [ anon ] 22 00007f42d788b000 4 ----- 0000000000000000 000:00000 [ anon ] 23 00007f42d788c000 8192 rw--- 0000000000000000 000:00000 [ anon ] 24 00007f42d808c000 4 ----- 0000000000000000 000:00000 [ anon ] 25 00007f42d808d000 8448 rw--- 0000000000000000 000:00000 [ anon ] 26 00007f42d88cd000 4 ----- 0000000000000000 000:00000 [ anon ] 27 00007f42d88ce000 8192 rw--- 0000000000000000 000:00000 [ anon ] 28 00007f42d90ce000 4 ----- 0000000000000000 000:00000 [ anon ] 29 00007f42d90cf000 8192 rw--- 0000000000000000 000:00000 [ anon ] 30 00007f42d98cf000 4 ----- 0000000000000000 000:00000 [ anon ] 31 00007f42d98d0000 8192 rw--- 0000000000000000 000:00000 [ anon ] 32 00007f42da0d0000 4 ----- 0000000000000000 000:00000 [ anon ] 33 00007f42da0d1000 8192 rw--- 0000000000000000 000:00000 [ anon ] 34 00007f42da8d1000 4 ----- 0000000000000000 000:00000 [ anon ] 35 00007f42da8d2000 8192 rw--- 0000000000000000 000:00000 [ anon ] 36 00007f42db0d2000 4 ----- 0000000000000000 000:00000 [ anon ] 37 00007f42db0d3000 8192 rw--- 0000000000000000 000:00000 [ anon ] 38 00007f42db8d3000 4 ----- 0000000000000000 000:00000 [ anon ] 39 00007f42db8d4000 8448 rw--- 0000000000000000 000:00000 [ anon ] 40 00007f42dc114000 4 ----- 0000000000000000 000:00000 [ anon ] 41 00007f42dc115000 8192 rw--- 0000000000000000 000:00000 [ anon ] 42 00007f42dc915000 4 ----- 0000000000000000 000:00000 [ anon ] 43 00007f42dc916000 8192 rw--- 0000000000000000 000:00000 [ anon ] 44 00007f42dd116000 4 ----- 0000000000000000 000:00000 [ anon ] 45 00007f42dd117000 8192 rw--- 0000000000000000 000:00000 [ anon ] 46 00007f42dd917000 88 r-x-- 0000000000000000 0fd:00001 libresolv-2.17.so 47 00007f42dd92d000 2044 ----- 0000000000016000 0fd:00001 libresolv-2.17.so 48 00007f42ddb2c000 4 r---- 0000000000015000 0fd:00001 libresolv-2.17.so 49 00007f42ddb2d000 4 rw--- 0000000000016000 0fd:00001 libresolv-2.17.so 50 00007f42ddb2e000 8 rw--- 0000000000000000 000:00000 [ anon ] 51 00007f42ddb30000 20 r-x-- 0000000000000000 0fd:00001 libnss_dns-2.17.so 52 00007f42ddb35000 2048 ----- 0000000000005000 0fd:00001 libnss_dns-2.17.so 53 00007f42ddd35000 4 r---- 0000000000005000 0fd:00001 libnss_dns-2.17.so 54 00007f42ddd36000 4 rw--- 0000000000006000 0fd:00001 libnss_dns-2.17.so 55 00007f42ddd37000 48 r-x-- 0000000000000000 0fd:00001 libnss_files-2.17.so 56 00007f42ddd43000 2044 ----- 000000000000c000 0fd:00001 libnss_files-2.17.so 57 00007f42ddf42000 4 r---- 000000000000b000 0fd:00001 libnss_files-2.17.so 58 00007f42ddf43000 4 rw--- 000000000000c000 0fd:00001 libnss_files-2.17.so 59 00007f42ddf44000 1432 rw--- 0000000000000000 000:00000 [ anon ] 60 00007f42de0aa000 4 ----- 0000000000000000 000:00000 [ anon ] 61 00007f42de0ab000 8192 rw--- 0000000000000000 000:00000 [ anon ] 62 00007f42de8ab000 4 ----- 0000000000000000 000:00000 [ anon ] 63 00007f42de8ac000 8192 rw--- 0000000000000000 000:00000 [ anon ] 64 00007f42df0ac000 4 ----- 0000000000000000 000:00000 [ anon ] 65 00007f42df0ad000 8192 rw--- 0000000000000000 000:00000 [ anon ] 66 00007f42df8ad000 4 ----- 0000000000000000 000:00000 [ anon ] 67 00007f42df8ae000 8192 rw--- 0000000000000000 000:00000 [ anon ] 68 00007f42e00ae000 4 ----- 0000000000000000 000:00000 [ anon ] 69 00007f42e00af000 44100 rw--- 0000000000000000 000:00000 [ anon ] 70 00007f42e2bc0000 263680 ----- 0000000000000000 000:00000 [ anon ] 71 00007f42f2d40000 4 rw--- 0000000000000000 000:00000 [ anon ] 72 00007f42f2d41000 293564 ----- 0000000000000000 000:00000 [ anon ] 73 00007f4304bf0000 4 rw--- 0000000000000000 000:00000 [ anon ] 74 00007f4304bf1000 36692 ----- 0000000000000000 000:00000 [ anon ] 75 00007f4306fc6000 4 rw--- 0000000000000000 000:00000 [ anon ] 76 00007f4306fc7000 4068 ----- 0000000000000000 000:00000 [ anon ] 77 00007f43073c0000 4 ----- 0000000000000000 000:00000 [ anon ] 78 00007f43073c1000 8192 rw--- 0000000000000000 000:00000 [ anon ] 79 00007f4307bc1000 1800 r-x-- 0000000000000000 0fd:00001 libc-2.17.so 80 00007f4307d83000 2048 ----- 00000000001c2000 0fd:00001 libc-2.17.so 81 00007f4307f83000 16 r---- 00000000001c2000 0fd:00001 libc-2.17.so 82 00007f4307f87000 8 rw--- 00000000001c6000 0fd:00001 libc-2.17.so 83 00007f4307f89000 20 rw--- 0000000000000000 000:00000 [ anon ] 84 00007f4307f8e000 84 r-x-- 0000000000000000 0fd:00001 libgcc_s-4.8.5-20150702.so.1 85 00007f4307fa3000 2044 ----- 0000000000015000 0fd:00001 libgcc_s-4.8.5-20150702.so.1 86 00007f43081a2000 4 r---- 0000000000014000 0fd:00001 libgcc_s-4.8.5-20150702.so.1 87 00007f43081a3000 4 rw--- 0000000000015000 0fd:00001 libgcc_s-4.8.5-20150702.so.1 88 00007f43081a4000 1028 r-x-- 0000000000000000 0fd:00001 libm-2.17.so 89 00007f43082a5000 2044 ----- 0000000000101000 0fd:00001 libm-2.17.so 90 00007f43084a4000 4 r---- 0000000000100000 0fd:00001 libm-2.17.so 91 00007f43084a5000 4 rw--- 0000000000101000 0fd:00001 libm-2.17.so 92 00007f43084a6000 932 r-x-- 0000000000000000 0fd:00001 libstdc++.so.6.0.19 93 00007f430858f000 2048 ----- 00000000000e9000 0fd:00001 libstdc++.so.6.0.19 94 00007f430878f000 32 r---- 00000000000e9000 0fd:00001 libstdc++.so.6.0.19 95 00007f4308797000 8 rw--- 00000000000f1000 0fd:00001 libstdc++.so.6.0.19 96 00007f4308799000 84 rw--- 0000000000000000 000:00000 [ anon ] 97 00007f43087ae000 92 r-x-- 0000000000000000 0fd:00001 libpthread-2.17.so 98 00007f43087c5000 2044 ----- 0000000000017000 0fd:00001 libpthread-2.17.so 99 00007f43089c4000 4 r---- 0000000000016000 0fd:00001 libpthread-2.17.so 100 00007f43089c5000 4 rw--- 0000000000017000 0fd:00001 libpthread-2.17.so 101 00007f43089c6000 16 rw--- 0000000000000000 000:00000 [ anon ] 102 00007f43089ca000 28 r-x-- 0000000000000000 0fd:00001 librt-2.17.so 103 00007f43089d1000 2044 ----- 0000000000007000 0fd:00001 librt-2.17.so 104 00007f4308bd0000 4 r---- 0000000000006000 0fd:00001 librt-2.17.so 105 00007f4308bd1000 4 rw--- 0000000000007000 0fd:00001 librt-2.17.so 106 00007f4308bd2000 8 r-x-- 0000000000000000 0fd:00001 libdl-2.17.so 107 00007f4308bd4000 2048 ----- 0000000000002000 0fd:00001 libdl-2.17.so 108 00007f4308dd4000 4 r---- 0000000000002000 0fd:00001 libdl-2.17.so 109 00007f4308dd5000 4 rw--- 0000000000003000 0fd:00001 libdl-2.17.so 110 00007f4308dd6000 136 r-x-- 0000000000000000 0fd:00001 ld-2.17.so 111 00007f4308e08000 512 rw--- 0000000000000000 000:00000 [ anon ] 112 00007f4308e88000 512 ----- 0000000000000000 000:00000 [ anon ] 113 00007f4308f08000 4 rw--- 0000000000000000 000:00000 [ anon ] 114 00007f4308f09000 508 ----- 0000000000000000 000:00000 [ anon ] 115 00007f4308f88000 408 rw--- 0000000000000000 000:00000 [ anon ] 116 00007f4308ff4000 12 rw--- 0000000000000000 000:00000 [ anon ] 117 00007f4308ff7000 4 r---- 0000000000021000 0fd:00001 ld-2.17.so 118 00007f4308ff8000 4 rw--- 0000000000022000 0fd:00001 ld-2.17.so 119 00007f4308ff9000 4 rw--- 0000000000000000 000:00000 [ anon ] 120 00007ffeb9da0000 276 rw--- 0000000000000000 000:00000 [ stack ] 121 00007ffeb9df1000 8 r-x-- 0000000000000000 000:00000 [ anon ] 122 ffffffffff600000 4 r-x-- 0000000000000000 000:00000 [ anon ] 123 mapped: 1137256K writeable/private: 489808K shared: 4096K
mapped
表示该进程映射的虚拟地址空间大小,也就是该进程预先分配的虚拟内存大小,即ps出的vszwriteable/private
表示进程所占用的私有地址空间大小,也就是该进程实际使用的内存大小shared
表示进程和其他进程共享的内存大小
示例 ‘pmap -x 30242’
展示进程内存 - 拓展信息
1 [root@VM-0-14-centos ~]# pmap -x 30242 2 30242: /usr/local/qcloud/YunJing/YDEyes/YDService 3 Address Kbytes RSS Dirty Mode Mapping 4 0000000000400000 19416 4964 0 r-x-- YDService # YDService 代码段 5 00000000018f5000 6520 2252 112 rw--- YDService # YDService 数据段 6 0000000001f53000 540 220 220 rw--- [ anon ] 7 0000000002206000 181088 62384 61208 rw--- [ anon ] # YDService 堆(分配的内存) 8 000000c000000000 65536 3780 3760 rw--- [ anon ] 9 00007f42d4445000 4 0 0 ----- [ anon ] 10 00007f42d4446000 8192 20 20 rw--- [ anon ] 11 00007f42d4c46000 4 0 0 ----- [ anon ] 12 00007f42d4c47000 8192 12 12 rw--- [ anon ] 13 00007f42d5447000 4 0 0 ----- [ anon ] 14 00007f42d5448000 8448 88 88 rw--- [ anon ] 15 00007f42d5c88000 4 0 0 ----- [ anon ] 16 00007f42d5c89000 8192 32 32 rw--- [ anon ] 17 00007f42d6489000 4096 4096 1024 rw-s- [ anon ] 18 00007f42d6889000 4 0 0 ----- [ anon ] 19 00007f42d688a000 8192 20 20 rw--- [ anon ] 20 00007f42d708a000 4 0 0 ----- [ anon ] 21 00007f42d708b000 8192 16 16 rw--- [ anon ] 22 00007f42d788b000 4 0 0 ----- [ anon ] 23 00007f42d788c000 8192 16 16 rw--- [ anon ] 24 00007f42d808c000 4 0 0 ----- [ anon ] 25 00007f42d808d000 8448 68 68 rw--- [ anon ] 26 00007f42d88cd000 4 0 0 ----- [ anon ] 27 00007f42d88ce000 8192 32 32 rw--- [ anon ] 28 00007f42d90ce000 4 0 0 ----- [ anon ] 29 00007f42d90cf000 8192 32 32 rw--- [ anon ] 30 00007f42d98cf000 4 0 0 ----- [ anon ] 31 00007f42d98d0000 8192 0 0 rw--- [ anon ] 32 00007f42da0d0000 4 0 0 ----- [ anon ] 33 00007f42da0d1000 8192 0 0 rw--- [ anon ] 34 00007f42da8d1000 4 0 0 ----- [ anon ] 35 00007f42da8d2000 8192 32 32 rw--- [ anon ] 36 00007f42db0d2000 4 0 0 ----- [ anon ] 37 00007f42db0d3000 8192 32 32 rw--- [ anon ] 38 00007f42db8d3000 4 0 0 ----- [ anon ] 39 00007f42db8d4000 8448 156 156 rw--- [ anon ] 40 00007f42dc114000 4 0 0 ----- [ anon ] 41 00007f42dc115000 8192 20 20 rw--- [ anon ] 42 00007f42dc915000 4 0 0 ----- [ anon ] 43 00007f42dc916000 8192 16 16 rw--- [ anon ] 44 00007f42dd116000 4 0 0 ----- [ anon ] 45 00007f42dd117000 8192 12 12 rw--- [ anon ] 46 00007f42dd917000 88 32 0 r-x-- libresolv-2.17.so 47 00007f42dd92d000 2044 0 0 ----- libresolv-2.17.so 48 00007f42ddb2c000 4 4 4 r---- libresolv-2.17.so 49 00007f42ddb2d000 4 4 4 rw--- libresolv-2.17.so 50 00007f42ddb2e000 8 0 0 rw--- [ anon ] 51 00007f42ddb30000 20 12 0 r-x-- libnss_dns-2.17.so 52 00007f42ddb35000 2048 0 0 ----- libnss_dns-2.17.so 53 00007f42ddd35000 4 4 4 r---- libnss_dns-2.17.so 54 00007f42ddd36000 4 4 4 rw--- libnss_dns-2.17.so 55 00007f42ddd37000 48 20 0 r-x-- libnss_files-2.17.so 56 00007f42ddd43000 2044 0 0 ----- libnss_files-2.17.so 57 00007f42ddf42000 4 4 4 r---- libnss_files-2.17.so 58 00007f42ddf43000 4 4 4 rw--- libnss_files-2.17.so 59 00007f42ddf44000 1432 356 32 rw--- [ anon ] 60 00007f42de0aa000 4 0 0 ----- [ anon ] 61 00007f42de0ab000 8192 0 0 rw--- [ anon ] 62 00007f42de8ab000 4 0 0 ----- [ anon ] 63 00007f42de8ac000 8192 8 8 rw--- [ anon ] 64 00007f42df0ac000 4 0 0 ----- [ anon ] 65 00007f42df0ad000 8192 8 8 rw--- [ anon ] 66 00007f42df8ad000 4 0 0 ----- [ anon ] 67 00007f42df8ae000 8192 28 28 rw--- [ anon ] 68 00007f42e00ae000 4 0 0 ----- [ anon ] 69 00007f42e00af000 44100 2376 2376 rw--- [ anon ] 70 00007f42e2bc0000 263680 0 0 ----- [ anon ] 71 00007f42f2d40000 4 4 4 rw--- [ anon ] 72 00007f42f2d41000 293564 0 0 ----- [ anon ] 73 00007f4304bf0000 4 4 4 rw--- [ anon ] 74 00007f4304bf1000 36692 0 0 ----- [ anon ] 75 00007f4306fc6000 4 4 4 rw--- [ anon ] 76 00007f4306fc7000 4068 0 0 ----- [ anon ] 77 00007f43073c0000 4 0 0 ----- [ anon ] 78 00007f43073c1000 8192 32 32 rw--- [ anon ] 79 00007f4307bc1000 1800 580 0 r-x-- libc-2.17.so 80 00007f4307d83000 2048 0 0 ----- libc-2.17.so 81 00007f4307f83000 16 16 12 r---- libc-2.17.so 82 00007f4307f87000 8 8 8 rw--- libc-2.17.so 83 00007f4307f89000 20 20 20 rw--- [ anon ] 84 00007f4307f8e000 84 0 0 r-x-- libgcc_s-4.8.5-20150702.so.1 85 00007f4307fa3000 2044 0 0 ----- libgcc_s-4.8.5-20150702.so.1 86 00007f43081a2000 4 0 0 r---- libgcc_s-4.8.5-20150702.so.1 87 00007f43081a3000 4 0 0 rw--- libgcc_s-4.8.5-20150702.so.1 88 00007f43081a4000 1028 0 0 r-x-- libm-2.17.so 89 00007f43082a5000 2044 0 0 ----- libm-2.17.so 90 00007f43084a4000 4 0 0 r---- libm-2.17.so 91 00007f43084a5000 4 0 0 rw--- libm-2.17.so 92 00007f43084a6000 932 156 0 r-x-- libstdc++.so.6.0.19 93 00007f430858f000 2048 0 0 ----- libstdc++.so.6.0.19 94 00007f430878f000 32 20 16 r---- libstdc++.so.6.0.19 95 00007f4308797000 8 8 8 rw--- libstdc++.so.6.0.19 96 00007f4308799000 84 12 12 rw--- [ anon ] 97 00007f43087ae000 92 44 0 r-x-- libpthread-2.17.so 98 00007f43087c5000 2044 0 0 ----- libpthread-2.17.so 99 00007f43089c4000 4 4 4 r---- libpthread-2.17.so 100 00007f43089c5000 4 4 4 rw--- libpthread-2.17.so 101 00007f43089c6000 16 4 4 rw--- [ anon ] 102 00007f43089ca000 28 0 0 r-x-- librt-2.17.so 103 00007f43089d1000 2044 0 0 ----- librt-2.17.so 104 00007f4308bd0000 4 0 0 r---- librt-2.17.so 105 00007f4308bd1000 4 0 0 rw--- librt-2.17.so 106 00007f4308bd2000 8 0 0 r-x-- libdl-2.17.so 107 00007f4308bd4000 2048 0 0 ----- libdl-2.17.so 108 00007f4308dd4000 4 0 0 r---- libdl-2.17.so 109 00007f4308dd5000 4 0 0 rw--- libdl-2.17.so 110 00007f4308dd6000 136 8 0 r-x-- ld-2.17.so 111 00007f4308e08000 512 328 328 rw--- [ anon ] 112 00007f4308e88000 512 0 0 ----- [ anon ] 113 00007f4308f08000 4 4 4 rw--- [ anon ] 114 00007f4308f09000 508 0 0 ----- [ anon ] 115 00007f4308f88000 408 60 48 rw--- [ anon ] 116 00007f4308ff4000 12 8 8 rw--- [ anon ] 117 00007f4308ff7000 4 4 4 r---- ld-2.17.so 118 00007f4308ff8000 4 4 4 rw--- ld-2.17.so 119 00007f4308ff9000 4 4 0 rw--- [ anon ] 120 00007ffeb9da0000 276 28 28 rw--- [ stack ] 121 00007ffeb9df1000 8 4 0 r-x-- [ anon ] 122 ffffffffff600000 4 0 0 r-x-- [ anon ] 123 ---------------- ------- ------- ------- 124 total kB 1137256 82536 69960
多情自古空余恨
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)