zoukankan      html  css  js  c++  java
  • Linux Pmap 命令:查看进程用了多少内存

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

    语法或用法

    #pmap PID 或者 #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中间使用空格分隔。

    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)
  • 相关阅读:
    mysql 历史版本下载
    mysql 5.7 版本 You must reset your password using ALTER USER statement before executing this statement报错处理
    5.7 zip 版本的安装 以及遇到的坑
    mysql 5.6zip版本的卸载与5.7 zip 版本的安装
    mysql数据库的备份与还原
    本地Navicat连接docker里的mysql
    docker修改数据库密码
    docker 在push镜像到本地registry出现的500 Internal Server Error
    linux 没有界面内容显示不全解决办法
    json与map互相转换
  • 原文地址:https://www.cnblogs.com/hushaojun/p/4845853.html
Copyright © 2011-2022 走看看