zoukankan      html  css  js  c++  java
  • /proc/status 里面的内存字段含义

    在Linux下面,查看一个进程的内存使用我们可以下面的命令来实现,只需把其中的[pid]换成进程实际的pid。

    cat /proc/[pid]/status

    为了方便,我们把查找pid和看内存整合成一条命令,后面这将是我们唯一的测试工具。

    cat /proc/`ps -ef|grep hello | grep -v grep | awk '{print $2}'`/status | grep -E 'VmSize|VmRSS|VmData|VmStk|VmExe|VmLib'

    在这里我们关注VmSize|VmRSS|VmData|VmStk|VmExe|VmLib 这个6个指标,下面有一些简单的解释。

    VmSize:

    虚拟内存大小。

    整个进程使用虚拟内存大小,是VmLib, VmExe, VmData, 和 VmStk的总和。

    占所有虚拟内存分配(文件映射,共享内存,堆内存,任何内存)的份额,并且几乎在每次分配新内存时都会增长。几乎,因为如果在数据段中用新的堆内存分配代替了释放的旧分配,则不会分配新的虚拟内存。每当释放虚拟分配时,它都会减少。VmPeak跟踪的最大值VmSize-只能随时间增加。

    VmLck:

    虚拟内存锁。

    进程当前使用的并且加锁的虚拟内存总数

    VmRSS:

    虚拟内存驻留集合大小。

    这是驻留在物理内存的一部分。它没有交换到硬盘。它包括代码,数据和栈。

    随着访问内存的增加而增加,随着将页面调出到交换设备的次数减少。

    VmData:

    虚拟内存数据。

    堆使用的虚拟内存。

    随着使用堆的数据段部分而增长。由于当前的堆分配器会保留释放的内存,以防将来的分配需要它,它几乎永远不会收缩。

    VmStk:

    虚拟内存栈

    栈使用的虚拟内存

    VmExe:

    可执行的虚拟内存

    可执行的和静态链接库所使用的虚拟内存

    VmLib:

    虚拟内存库

    动态链接库所使用的虚拟内存

    VmPeak:

    表示进程所占用最大虚拟内存大小 

  • 相关阅读:
    使用命令行管理virtualBox
    springboot activiti 整合项目框架源码 shiro 安全框架 druid 数据库连接池
    activiti工作流的web流程设计器整合视频教程 SSM 和 独立部署
    java springMVC SSM 操作日志 4级别联动 文件管理 头像编辑 shiro redis
    MVC、MVP、MVVM 模式对比
    GoBelieve IM 消息推送的方案
    Token生成(转载)
    ios的framework合并
    Gobelieve 架构(转载)
    xcode10不兼容问题解决方法,framework编译脚本
  • 原文地址:https://www.cnblogs.com/dongzhiquan/p/15710575.html
Copyright © 2011-2022 走看看