[译] linux内存管理之RSS和VSZ的区别
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的区别相关推荐
- linux 命令rsss,[译] linux内存管理之RSS和VSZ的区别
RSS是Resident Set Size(常驻内存大小)的缩写,用于表示进程使用了多少内存(RAM中的物理内存),RSS不包含已经被换出的内存.RSS包含了它所链接的动态库并且被加载到物理内存中的内 ...
- linux内存管理之RSS和VSZ的区别
[译] linux内存管理之RSS和VSZ的区别 阅读 724 收藏 0 2019-08-25 原文链接: pengrl.com RSS是Resident Set Size(常驻内存大小)的缩写,用于 ...
- linux内存管理简介,Linux内存管理机制简介
在Linux中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然.这是Linux内存管理的一个优秀特性,区别于 Windows的内存管理. 主要特点是,无论物理内存有 ...
- linux内存管理的主要概念是虚拟内存,有关linux内存管理机制的相关内容,linux物理内存和虚拟内存,深入了解Linux内存运行 ......
在linux中空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然. 这是Linux内存管理的一个优秀特性,区别于Windows的内存管理. 主要特点: 无论物理内存有多大,L ...
- linux内存管理_浅谈Linux内存管理
1. 扫盲篇 1.1 操作系统存储层次 常见的计算机存储层次如下: 寄存器:CPU提供的,读写ns级别,容量字节级别. CPU缓存:CPU和CPU间的缓存,读写10ns级别,容量较大一些,百到千节. ...
- Linux内存管理初探
linux内存是后台开发人员,需要深入了解的计算机资源.合理的使用内存,有助于提升机器的性能和稳定性.本文主要介绍linux内存组织结构和页面布局,内存碎片产生原因和优化算法,linux内核几种内存管 ...
- Linux内存管理:MMU那些事儿
<ARM SMMU原理与IOMMU技术("VT-d" DMA.I/O虚拟化.内存虚拟化)> <Linux内存管理:分页机制> <Linux内存管理:内 ...
- Linux内存管理:NUMA技术详解(非一致内存访问架构)
图片来源:https://zhuanlan.zhihu.com/p/68465952 <Linux内存管理:转换后备缓冲区(TLB)原理> <内存管理:Linux Memory Ma ...
- Linux内存管理 -- smaps讲解
基本介绍 /proc/PID/smaps 文件是基于 /proc/PID/maps 的扩展,他展示了一个进程的内存消耗,比同一目录下的maps文件更为详细. 值得说明一下的是,每一个VMA(虚拟内存区 ...
最新文章
- 10万人的1000万张图像,微软悄然删除最大公开人脸数据集
- CreateEvent创建事件对象
- 科大星云诗社动态20210207
- PHP 继承新增,php类的扩展和继承用法实例
- thymeleaf模板引擎基础使用(转)
- 最新西安计算机信息会议,第23届全国信息存储技术学术会议在西安召开
- 使用vagrant因用户权限导致文件不可写问题的解决
- 综合实例_为啥要做“三维管线综合”?看个实例就明白
- Could not load dynamic library ‘libcudart.so.10.0‘; dlerror: libcudart.so.10.0: cannot open shared o
- bcc校验位怎么算的_数据BCC校验码计算工具
- Chrome 内存和CPU消耗量双料冠军
- 测试人如何开展第一份工作?
- 11.17 shell特殊符号cut命令,sort_wc_uniq命令,tee_tr_split命令,shell特殊符号
- python抛硬币正面向上概率_Python-计算抛硬币出现连续10次正面朝上的概率的仿真实验...
- 人像姿势,从细节做起!
- jAVA EE NZ2001 java EE学习总结 第七周(包含思维导图) 主要内容I/O框架、网络编程、反射
- 数学模型之整数规划(0-1规划)
- android虚拟机接收真实短信,向Android模拟器打电话发短信的简单方法
- ZYNQ7000 (二十)等精度频率计的原理分析和实例实现
- 【计算机网络】【链路层和局域网-2】