Linux Pmap 命令 - 查看进程用了多少内存

简介:

Pmap 提供了进程的内存映射,pmap命令用于显示一个或多个进程的内存状态。其报告进程的地址空间和内存状态信息。Pmap实际上是一个Sun OS上的命令,linux仅支持其有限的功能。但是它还是对查看完整的进程地址空间很有帮助。我们需要PID或者运行的进程的唯一进程ID来查看进程内存状态,我们可以通过/proc或者常规命令比如top或ps得到它。

语法或用法

 
  1. #pmap PID

或者

 
  1. #pmap [options] PID

在输出中它显示全部的地址,kbytes,mode还有mapping。

选项

  • -x extended显示扩展格式
  • -d device显示设备格式
  • -q quiet不显示header/footer行
  • -V 显示版本信息

单一进程内存状态

 
  1. [root@info ~]# pmap 1013
  2.  
  3.  
  4. 1013: /usr/sbin/sshd
  5. 00110000 1480K r-x- /usr/lib/libcrypto.so.1.0.0
  6. 00282000 80K rw-- /usr/lib/libcrypto.so.1.0.0
  7. 00296000 12K rw-- [ anon ]
  8. 00299000 36K r-x- /lib/libkrb5support.so.0.1
  9. 002a2000 4K rw-- /lib/libkrb5support.so.0.1
  10. 002a3000 16K r-x- /lib/libplc4.so
  11. 002a7000 4K rw-- /lib/libplc4.so
  12. 002ab000 88K r-x- /lib/libaudit.so.1.0.0
  13. 002c1000 4K r-- /lib/libaudit.so.1.0.0
  14. 002c2000 4K rw-- /lib/libaudit.so.1.0.0
  15. 002c3000 216K r-x- /lib/libgssapi_krb5.so.2.2
  16. 002f9000 4K rw-- /lib/libgssapi_krb5.so.2.2
  17. 002fa000 808K r-x- /lib/libkrb5.so.3.3
  18. 003c4000 24K rw-- /lib/libkrb5.so.3.3
  19. 003ca000 152K r-x- /lib/libk5crypto.so.3.1
  20. 003f0000 4K rw-- /lib/libk5crypto.so.3.1
  21. 003f1000 92K r-x- /usr/lib/libnssutil3.so
  22. 00738000 4K r--- /lib/libresolv-2.12.so
  23. 00739000 4K rw-- /lib/libresolv-2.12.so
  24. 0073a000 8K rw-- [ anon ]
  25. 00825000 120K r-x- /lib/ld-2.12.so
  26. 00843000 4K r--- /lib/ld-2.12.so
  27. 00844000 4K rw-- /lib/ld-2.12.so
  28. 0090d000 32K r-x- /lib/libwrap.so.0.7.6
  29. 00915000 4K rw-- /lib/libwrap.so.0.7.6
  30. 00948000 484K r-x- /usr/sbin/sshd
  31. 009c1000 8K rw-- /usr/sbin/sshd
  32. 009c3000 20K rw-- [ anon ]
  33. 009e0000 92K r-x- /lib/libpthread-2.12.so
  34. 009f7000 4K r--- /lib/libpthread-2.12.so
  35.  
  36. total 8232K

多进程内存状态

我们可以检查多进程内存通过插入多个PID。加入多个PID中间使用空格分隔。

 
  1. pmap 1013 1217 1118

扩展进程内存

 
  1. [root@info ~]# pmap -x 1013
  2. 1013: /usr/sbin/sshd
  3. Address Kbytes RSS Dirty Mode Mapping
  4. 00110000 1480 92 0 r-x- libcrypto.so.1.0.0
  5. 00282000 80 80 80 rw-- libcrypto.so.1.0.0
  6. 00296000 12 8 4 rw-- [ anon ]
  7. 00299000 36 0 0 r-x- libkrb5support.so.0.1
  8. 002a2000 4 4 4 rw-- libkrb5support.so.0.1
  9. 002a3000 16 0 0 r-x- libplc4.so
  10. 002a7000 4 4 4 rw-- libplc4.so
  11. 002ab000 88 4 0 r-x- libaudit.so.1.0.0
  12. 002c1000 4 4 4 r--- libaudit.so.1.0.0
  13. 002c2000 4 4 4 rw-- libaudit.so.1.0.0
  14. 002c3000 216 4 0 r-x- libgssapi_krb5.so.2.2
  15. 002f9000 4 4 4 rw-- libgssapi_krb5.so.2.2
  16. 002fa000 808 4 0 r-x- libkrb5.so.3.3
  17. 003c4000 24 24 24 rw-- libkrb5.so.3.3
  18. 003ca000 152 4 0 r-x- libk5crypto.so.3.1
  19. 003f0000 4 4 4 rw-- libk5crypto.so.3.1
  20. 003f1000 92 0 0 r-x- libnssutil3.so
  21. 00408000 12 12 12 rw-- libnssutil3.so
  22. 0040b000 12 0 0 r-x- libplds4.so
  23. 0040e000 4 4 4 rw-- libplds4.so
  24.  
  25. --- --- --- --- ---
  26. total kB 8232 - - -

这里的Address,Kbyte,Dirty,RSS,mode还有mapping的说明如下

扩展和设备格式区域

  • Address: 内存开始地址
  • Kbytes: 占用内存的字节数(KB)
  • RSS: 保留内存的字节数(KB)
  • Dirty: 脏页的字节数(包括共享和私有的)(KB)
  • Mode: 内存的权限:read、write、execute、shared、private (写时复制)
  • Mapping: 占用内存的文件、或[anon](分配的内存)、或[stack](堆栈)
  • Offset: 文件偏移
  • Device: 设备名 (major:minor)

 原文发布时间为:2013-11-05

本文来自云栖社区合作伙伴“Linux中国”

相关文章
|
1天前
|
Linux
【Linux】深入理解ls命令
【Linux】深入理解ls命令
|
2天前
|
Linux
Linux rsyslog占用内存CPU过高解决办法
该文档描述了`rsyslog`占用内存过高的问题及其解决方案。
21 4
|
4天前
|
监控 Linux Windows
50个必知的Linux命令技巧,你都掌握了吗?(下)
50个必知的Linux命令技巧,你都掌握了吗?(下)
|
4天前
|
Linux Shell Windows
Linux 常用基本命令
Linux 常用基本命令
|
5天前
|
NoSQL Linux 程序员
【linux进程信号(一)】信号的概念以及产生信号的方式
【linux进程信号(一)】信号的概念以及产生信号的方式
|
5天前
|
Linux
【linux进程间通信(一)】匿名管道和命名管道
【linux进程间通信(一)】匿名管道和命名管道
|
5天前
|
Java Shell Linux
【linux进程控制(三)】进程程序替换--如何自己实现一个bash解释器?
【linux进程控制(三)】进程程序替换--如何自己实现一个bash解释器?
|
5天前
|
算法 Linux Shell
【linux进程(二)】如何创建子进程?--fork函数深度剖析
【linux进程(二)】如何创建子进程?--fork函数深度剖析
|
5天前
|
存储 Linux Shell
【linux进程(一)】深入理解进程概念--什么是进程?PCB的底层是什么?
【linux进程(一)】深入理解进程概念--什么是进程?PCB的底层是什么?
|
1月前
|
消息中间件 Linux
Linux进程间通信(IPC)教程 Linux共享内存介绍:介绍POSIX共享内存的基本概念、用途和编程实践
Linux进程间通信(IPC)教程 Linux共享内存介绍:介绍POSIX共享内存的基本概念、用途和编程实践
25 2