RSS是Resident Set Size(常驻内存大小)的缩写,用于表示进程使用了多少内存(RAM中的物理内存),RSS不包含已经被换出的内存。RSS包含了它所链接的动态库并且被加载到物理内存中的内存。RSS还包含栈内存和堆内存。

VSZ是Virtual Memory Size(虚拟内存大小)的缩写。它包含了进程所能访问的所有内存,包含了被换出的内存,被分配但是还没有被使用的内存,以及动态库中的内存。

假设进程A的二进制文件是500K,并且链接了一个2500K的动态库,堆和栈共使用了200K,其中100K在内存中(剩下的被换出或者不再被使用),一共加载了动态库中的1000K内容以及二进制文件中的400K内容至内存中,那么:

RSS: 400K + 1000K + 100K = 1500K
VSZ: 500K + 2500K + 200K = 3200K

由于部分内存是共享的,被多个进程使用,所以如果将所有进程的RSS值加起来可能会大于系统的内存总量。

申请过的内存如果程序没有实际使用,则可能不显示在RSS里。比如说一个程序,预先申请了一大批内存,过了一段时间才使用,你会发现RSS会增长而VSZ保持不变。

还有一个概念是PSS,它是proportional set size(proportional是成比例的意思)的缩写。这是一种新的度量方式。它将动态库所使用的内存按比例划分。比如我们前面例子中的动态库如果是被两个进程使用,那么:

PSS: 400K + (1000K/2) + 100K = 400K + 500K + 100K = 1000K

一个进程中的多个线程共享同样的地址空间。所以一个进程中的多个线程的RSS,VSZ,PSS是完全相同的。linux下可以使用ps或者top命令查看这些信息。

如果想了解更多,可参考下面的链接:

  • http://manpages.ubuntu.com/manpages/en/man1/ps.1.html
  • https://web.archive.org/web/20120520221529/
  • http://emilics.com/blog/article/mconsumption.html
  • A way to determine a process's "real" memory usage, i.e. private dirty RSS?

英文原文: What is RSS and VSZ in Linux memory management

原文链接: https://pengrl.com/p/21292/
原文出处: yoko blog (https://pengrl.com)
原文作者: yoko
版权声明: 本文欢迎任何形式转载,转载时完整保留本声明信息(包含原文链接、原文出处、原文作者、版权声明)即可。本文后续所有修改都会第一时间在原始地址更新。

本篇文章由一文多发平台ArtiPub自动发布

[译] linux内存管理之RSS和VSZ的区别相关推荐

  1. linux 命令rsss,[译] linux内存管理之RSS和VSZ的区别

    RSS是Resident Set Size(常驻内存大小)的缩写,用于表示进程使用了多少内存(RAM中的物理内存),RSS不包含已经被换出的内存.RSS包含了它所链接的动态库并且被加载到物理内存中的内 ...

  2. linux内存管理之RSS和VSZ的区别

    [译] linux内存管理之RSS和VSZ的区别 阅读 724 收藏 0 2019-08-25 原文链接: pengrl.com RSS是Resident Set Size(常驻内存大小)的缩写,用于 ...

  3. linux内存管理简介,Linux内存管理机制简介

    在Linux中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然.这是Linux内存管理的一个优秀特性,区别于 Windows的内存管理. 主要特点是,无论物理内存有 ...

  4. linux内存管理的主要概念是虚拟内存,有关linux内存管理机制的相关内容,linux物理内存和虚拟内存,深入了解Linux内存运行 ......

    在linux中空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然. 这是Linux内存管理的一个优秀特性,区别于Windows的内存管理. 主要特点: 无论物理内存有多大,L ...

  5. linux内存管理_浅谈Linux内存管理

    1. 扫盲篇 1.1 操作系统存储层次 常见的计算机存储层次如下: 寄存器:CPU提供的,读写ns级别,容量字节级别. CPU缓存:CPU和CPU间的缓存,读写10ns级别,容量较大一些,百到千节. ...

  6. Linux内存管理初探

    linux内存是后台开发人员,需要深入了解的计算机资源.合理的使用内存,有助于提升机器的性能和稳定性.本文主要介绍linux内存组织结构和页面布局,内存碎片产生原因和优化算法,linux内核几种内存管 ...

  7. Linux内存管理:MMU那些事儿

    <ARM SMMU原理与IOMMU技术("VT-d" DMA.I/O虚拟化.内存虚拟化)> <Linux内存管理:分页机制> <Linux内存管理:内 ...

  8. Linux内存管理:NUMA技术详解(非一致内存访问架构)

    图片来源:https://zhuanlan.zhihu.com/p/68465952 <Linux内存管理:转换后备缓冲区(TLB)原理> <内存管理:Linux Memory Ma ...

  9. Linux内存管理 -- smaps讲解

    基本介绍 /proc/PID/smaps 文件是基于 /proc/PID/maps 的扩展,他展示了一个进程的内存消耗,比同一目录下的maps文件更为详细. 值得说明一下的是,每一个VMA(虚拟内存区 ...

最新文章

  1. 10万人的1000万张图像,微软悄然删除最大公开人脸数据集
  2. CreateEvent创建事件对象
  3. 科大星云诗社动态20210207
  4. PHP 继承新增,php类的扩展和继承用法实例
  5. thymeleaf模板引擎基础使用(转)
  6. 最新西安计算机信息会议,第23届全国信息存储技术学术会议在西安召开
  7. 使用vagrant因用户权限导致文件不可写问题的解决
  8. 综合实例_为啥要做“三维管线综合”?看个实例就明白
  9. Could not load dynamic library ‘libcudart.so.10.0‘; dlerror: libcudart.so.10.0: cannot open shared o
  10. bcc校验位怎么算的_数据BCC校验码计算工具
  11. Chrome 内存和CPU消耗量双料冠军
  12. 测试人如何开展第一份工作?
  13. 11.17 shell特殊符号cut命令,sort_wc_uniq命令,tee_tr_split命令,shell特殊符号
  14. python抛硬币正面向上概率_Python-计算抛硬币出现连续10次正面朝上的概率的仿真实验...
  15. 人像姿势,从细节做起!
  16. jAVA EE NZ2001 java EE学习总结 第七周(包含思维导图) 主要内容I/O框架、网络编程、反射
  17. 数学模型之整数规划(0-1规划)
  18. android虚拟机接收真实短信,向Android模拟器打电话发短信的简单方法
  19. ZYNQ7000 (二十)等精度频率计的原理分析和实例实现
  20. 【计算机网络】【链路层和局域网-2】

热门文章

  1. 如何在安卓计算机里边隐藏游戏,安卓手机如何隐藏应用程序,来看看吧
  2. Python在游戏中的热更新
  3. 首次!TinyML低功耗边缘侧机器学习技术论坛-亚洲分会来到中国!
  4. 数据库系统实验4:SQL——SELECT查询操作
  5. 微信分享到朋友圈的链接没有图片。开发工具中正常没有报错-解决方案
  6. 近期基金有所上涨,你的基金回本了吗?如果回本了,你还会继续持仓吗?
  7. 视频通话和直播技术webRTC和RTMP探究
  8. 天津达内可靠么 老员工揭秘真实的达内教育
  9. c++传输二进制数据
  10. python读取dat文件经纬度_自动提取kml文件中的经纬度