如何使用Linux PMAP命令检查过程的内存使用情况
时间:2020-03-05 15:29:10 来源:igfitidea点击:
Linux PMAP命令显示进程或者多个进程的内存使用情况。
PMAP报告有关进程的地址空间或者内存使用情况的信息。
PMAP实际上是Sun OS命令,Linux仅支持非常有限的功能。
但是,找到一个过程的完整地址空间非常有帮助。
要检查流程的内存使用情况我们需要运行进程的PID或者唯一的进程ID,我们可以从/proc或者pround命令等pID,如顶部或者ps。
早些时候我们谈到了使用PS和Top命令检查过程内存检查,本教程我将教授如何使用PMAP命令。
使用语法
让我们检查PMAP命令的基本语法。
# pmap PID
或者
# pmap [options] PID
在输出中,它显示总址,kBytes,模式和映射。
选项
-x extended Show the extended format. -d device Show the device format. -q quiet Do not display some header/footer lines. -V show version Displays version of program.
1)单程内存使用地图
检查单个进程的内存使用情况使用Map命令后跟PID号码。
让我们检查PMAP示例:
# pmap 1013
1013: /usr/sbin/sshd 00110000 1480K r-x-- /usr/lib/libcrypto.so.1.0.0 00282000 80K rw--- /usr/lib/libcrypto.so.1.0.0 00296000 12K rw--- [ anon ] 00299000 36K r-x-- /lib/libkrb5support.so.0.1 002a2000 4K rw--- /lib/libkrb5support.so.0.1 00739000 4K rw--- /lib/libresolv-2.12.so 0073a000 8K rw--- [ anon ] 00825000 120K r-x-- /lib/ld-2.12.so 00843000 4K r---- /lib/ld-2.12.so 00844000 4K rw--- /lib/ld-2.12.so 0090d000 32K r-x-- /lib/libwrap.so.0.7.6 00915000 4K rw--- /lib/libwrap.so.0.7.6 00948000 484K r-x-- /usr/sbin/sshd 009c1000 8K rw--- /usr/sbin/sshd 009c3000 20K rw--- [ anon ] 009e0000 92K r-x-- /lib/libpthread-2.12.so 009f7000 4K r---- /lib/libpthread-2.12.so total 8232K
2)内存使用多个进程的地图
我们可以通过插入多个PID来检查多个进程的存储映射。
为此添加具有添加空间的多个PID。
# pmap 1013 1217 1118
3)关于一个过程的扩展内存映射
打印进程的扩展内存信息使用"-x""选项。
这里地址,kbyte,脏,rss,模式和映射包含以下信息:
扩展和设备格式字段
Address: start address of map Kbytes: size of map in kilobytes RSS: resident set size in kilobytes Dirty: dirty pages (both shared and private) in kilobytes Mode: permissions on map: read, write, execute, shared, private (copy on write) Mapping: file backing the map, or '[ anon ]' for allocated memory, or '[ stack ]' for the program stack Offset: offset into the file Device: device name (major:minor)
# pmap -x 1013 1013: /usr/sbin/sshd Address Kbytes RSS Dirty Mode Mapping 00110000 1480 92 0 r-x-- libcrypto.so.1.0.0 00282000 80 80 80 rw--- libcrypto.so.1.0.0 00296000 12 8 4 rw--- [ anon ] 00299000 36 0 0 r-x-- libkrb5support.so.0.1 002a2000 4 4 4 rw--- libkrb5support.so.0.1 002a3000 16 0 0 r-x-- libplc4.so 002a7000 4 4 4 rw--- libplc4.so 002ab000 88 4 0 r-x-- libaudit.so.1.0.0 002c1000 4 4 4 r---- libaudit.so.1.0.0 002c2000 4 4 4 rw--- libaudit.so.1.0.0 002c3000 216 4 0 r-x-- libgssapi_krb5.so.2.2 002f9000 4 4 4 rw--- libgssapi_krb5.so.2.2 002fa000 808 4 0 r-x-- libkrb5.so.3.3 003c4000 24 24 24 rw--- libkrb5.so.3.3 003ca000 152 4 0 r-x-- libk5crypto.so.3.1 003f0000 4 4 4 rw--- libk5crypto.so.3.1 003f1000 92 0 0 r-x-- libnssutil3.so 00408000 12 12 12 rw--- libnssutil3.so 0040b000 12 0 0 r-x-- libplds4.so 0040e000 4 4 4 rw--- libplds4.so -------- ------- ------- ------- ------ total kB 8232 - -