Memstat -- 查看共享库的内存占用


我们可以用 top 或者 系统管理器 这样的工具来查看各个进程的内存占用,不过内存中不光有你运行的进程,还驻留着进程需要的共享库,比如最基本的 libc.so。这些共享库在物理内存上只存在一份拷贝,而被多个进程共享。我们在 top 中查看进程信息的时候,会有 RSS 和 VSZ 两个项目,前者是进程本身的内存占用,而后者是算上共享库的总占用。

    Memstat 这个小程序可以帮你查看每个共享库的内存占用,让他们现形。

    直接运行 memstat -w 即可列出当前所有共享库的信息:

     memstat -w


    如果不加 -w 参数,memstat 会把过长的信息截断到 80 列。效果

 

    第一列为内存占用,随后是共享库的完整路径,最后的数字是使用这个共享库进程的 PID,可以看到,不少共享库后面有很多 PID,表示这个共享库被多个进程所共享。

    你可以在 /etc/memstat.conf 中配置执行文件的目录,memstat 只会调查这些目录下的可执行文件共享库信息。

    如果你想查看那个共享库占用的内存最多,只需要用 sort 过滤一下:

   

 memstat -w | sort -rn

    即可~

    Memstat 在 Debian 和 Ubuntu 中都有,不过我没找到他的主页,如果你的软件仓库中没有 memstat,可以在本地下载,这个包是通过 deb2targz 转过来的

本文作者:

我们可以用 top 或者 系统管理器 这样的工具来查看各个进程的内存占用,不过内存中不光有你运行的进程,还驻留着进程需要的共享库,比如最基本的 libc.so。这些共享库在物理内存上只存在一份拷贝,而被多个进程共享。我们在 top 中查看进程信息的时候,会有 RSS 和 VSZ 两个项目,前者是进程本身的内存占用,而后者是算上共享库的总占用。

    Memstat 这个小程序可以帮你查看每个共享库的内存占用,让他们现形。

    直接运行 memstat -w 即可列出当前所有共享库的信息:

     memstat -w


    如果不加 -w 参数,memstat 会把过长的信息截断到 80 列。效果

 

    第一列为内存占用,随后是共享库的完整路径,最后的数字是使用这个共享库进程的 PID,可以看到,不少共享库后面有很多 PID,表示这个共享库被多个进程所共享。

    你可以在 /etc/memstat.conf 中配置执行文件的目录,memstat 只会调查这些目录下的可执行文件共享库信息。

    如果你想查看那个共享库占用的内存最多,只需要用 sort 过滤一下:

   

 memstat -w | sort -rn

    即可~

    Memstat 在 Debian 和 Ubuntu 中都有,不过我没找到他的主页,如果你的软件仓库中没有 memstat,可以在本地下载,这个包是通过 deb2targz 转过来的

本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3