文章目录

  • Linux
  • 工具
    • ps aux
    • top
    • pmap -[x/X/XX] {$PID}
    • smem
  • Windows

我们都知道进程运行时,会有一个栈空间(stack)和一个堆空间(heap), 栈空间用于函数调用和局部变量,堆空间是C语言的 malloc 来分配的全局指针。这些都是进程的私有数据,除了这些,还有映射进来的动态库,进程间的共享内存等共享空间。另外,操作系统还支持预留虚拟地址空间的功能(延迟分配),也就是在读写该内存的时候,操作系统才进行物理内存的分配,因此进程占用的空间情况还是比较复杂的。下面简单地说明一下。

Linux

VSZ:Virtual Memory Size(虚拟内存大小)。进程占用的全部地址空间,共享库,预分配内存,交换分区等都包含在里面。因此,它远远大于实际的占用的内存空间。

RSS:Resident Set Size(驻留集大小), 实际占用的物理内存,它包含共享库,但不包含在交换分区的空间。随着程序的运行,RSS也会跟着增长,VSZ将是它的上限。

PSS:Proportional Set Size, 也是实际分配的物理内存,与RSS的区别是,它以平分的方式来计算共享库的大小(共享库 / 进程个数), RSS会把共享库的大小全部计算进来。

USS:Unique Set Size, 进程的私有内存(独自使用的库,堆等空间),不包含共享的内存空间。

ANON: Anonymous memory,匿名内存 —— 没有文件关联的内存页面。Linux会自动映射文件到内存,读取的文件后,会自动缓存到内存。如果,应用程序只是使用mmap(MAP_ANONYMOUS) 分配一些内存页面没有文件关联,就称为“匿名内存”。

Dirty: dirty pages , 脏页大小 —— 还没有写回到硬盘的缓存页面。

VIRT: 同VSZ。

RES: 同RSS。

假如进程A(2k),只依赖动态库B(1000k) ;A 分配 128k的匿名空间,200k的堆栈和堆的空间——实际使用100k。其中动态库B被 2个进程共享,实际加载200k,那么 ——

VSZ = 2k + 1000k + 128k + 200k = 1230k

RSS = 2k + 200k + 128k + 100k = 430k

PSS = 2k + 200k / 2 + 128k + 100k = 330k

USS = 2k + 128k + 100k = 230k

ANON = 128k

工具

进程的内存原始数据的主要来源于 proc 目录下的2个文件,可以 直接cat 查看。

/proc/{$PID}/smaps
/proc/{$PID}/maps

maps 是以地址空间段来输出内容,而 smaps 则以文件,堆,堆栈来组织内容。

ps aux


单独查看某个进程

top

pmap -[x/X/XX] {$PID}

x 越大,越多,信息越详细。

smem

Windows

linux进程vsz,Linux 内存管理中的 RSS 和 VSZ 是什么意思?

linux进程VSZ(Virtual Memory Size 虚拟内存)RSS(Resident Set Size 驻留集大小,实际占用的物理内存)PSS、USS、ANON、RESVIRTDirty相关推荐

  1. linux进程VSZ(虚拟内存)

    VSZ:Virtual Memory Size linux进程vsz,Linux 内存管理中的 RSS 和 VSZ 是什么意思?

  2. Virtual Memory(虚拟内存)

    转载请注明出处:http://blog.csdn.net/c602273091/article/details/53529384 Why VM VM Translation Some tips 18- ...

  3. java jvm容器_在Docker容器中运行的JVM的驻留集大小(RSS)和Java总承诺内存(NMT)之间的差异...

    Mikhail Krestjaninoff中的" Analyzing java memory usage in a Docker container"有一些线索: Resident ...

  4. linux ps vsz malloc,认真分析下进程的内存,说说VSZ、RSS、PSS

    进程占用的内存可以有以下这些类型:自身的代码 共享库的代码 运行过程分配的堆和栈 通过mmap映射的磁盘文件内容 1. 虚拟内存与物理内存 这里要区分两个概念,虚拟内存和物理内存.物理内存对于进程来说 ...

  5. linux rss 内存分析,Linux进程内存分析pmap命令

    名称: pmap - report memory map of a process(查看进程的内存映像信息) 用法 pmap [ -x | -d ] [ -q ] pids... pmap -V 选项 ...

  6. linux 进程的vss rss uss,内存VSS,RSS,PSS,USS解读

    在Linux里面,一个进程占用的内存有不同种说法,有四种形式: VSS(Virtual) RSS(Resident) PSS(Proportional) USS(Unique) VSS是单个进程全部可 ...

  7. Linux进程管理之ps的使用

    主题Linux进程管理之ps工具的使用 一ps工具的介绍 ps: process state  进程状态 ps - report a snapshot of the current processes ...

  8. linux进程属主6,20150917 Linux进程查看与管理以及作业管理

    第一.基础知识 MBR引导--内核--内核程序-->协调其它程序 一般内核运行在硬件之上,各应用也在硬件之前 1)OS的基本功能:文件系统.网络功能.进程管理.内存管理.驱动程序.安全功能 以上 ...

  9. linux有许多sed进程,Linux进程与性能监控

    系统性能监控相关命令 1.vmstat命令 Report virtual memory statistics,报告虚拟内存的统计数据. 常用选项:# #:vmstat后面直接给出数字第一个数字表示每隔 ...

最新文章

  1. 理解hasOwnProperty()的作用
  2. cometd_CometD:Java Web应用程序的Facebook类似聊天
  3. 大数据如何应用在生活中
  4. Guava LoadingCache用法
  5. IllustratorCS6-桌面排版与插画绘制-01-使用散点画笔绘制璀璨星云
  6. 【Python框架】Scrapy简单入门及实例讲解
  7. jQuery笔记——工具函数——jQuery标志
  8. 机器学习进阶 day4
  9. ZYNQ PS GPIO MIO 基础知识
  10. win7计算机睡眠后无法唤醒,win7系统待机后打不开怎么办|win7待机无法唤醒的解决方法...
  11. threejs 形状几何体_使用Playcanvas.js实现的3D几何体/形状
  12. 拼多多关键词的排名是怎么查?拼多多排名规则
  13. 程序员:怎样才能学好英语?
  14. ARM:植物微生物组的生态学与进化
  15. opencv中礼帽和黑帽_一流的礼帽
  16. 尾插法建立单链表(详细版)
  17. windows系统重装(安装)第三篇——利用PE系统下的WinNTSetup工具重装系统
  18. 2011.10.23朗讯笔试题
  19. 电视不支持AirPlay镜像怎么办?苹果iPhone手机投屏三种方法
  20. Linux磁盘空间管理技术用,Linux下使用quota命令管理磁盘空间的实例教程

热门文章

  1. html班级管理模板,班级管理论文模板
  2. 如何用神经网络预测数据,人工神经网络分析方法
  3. 熊猫烧香电脑病毒案告破 抓获8名疑犯
  4. jQuery中ajax的使用(最详细)
  5. 单机限流和分布式应用限流
  6. 一 软件应用架构演进
  7. 推荐系统综述——只谈感受不谈理论
  8. Super Mario(POJ4417)
  9. LaTeX 与 Word 比较
  10. 连续量产两大4D成像雷达项目,这家国产商率先冲百万级规模市场