• 技术文章 >运维 >linux运维

    linux中vsz和rss有什么区别

    长期闲置长期闲置2022-07-14 16:27:03原创142

    linux中vsz和rss的区别:1、rss是“Resident Set Size”的缩写,表示常驻内存大小,而vsz是“Virtual Memory Size”的缩写,表示虚拟内存大小;2、rss用于表示进程使用了多少内存,并且不包含已经被换出的内存,而vsz包含了进程所能访问的所有内存,包括了被换出的内存。

    本教程操作环境:linux7.3系统、Dell G3电脑。

    linux中vsz和rss有什么区别

    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命令查看这些信息。

    推荐学习:Linux视频教程

    以上就是linux中vsz和rss有什么区别的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:linux
    上一篇:Linux中mysql的1366错误怎么解决 下一篇:linux怎么查看文件夹多大
    20期PHP线上班

    相关文章推荐

    精选22门好课,价值3725元,开通VIP免费学习!• linux中tcp连接不释放怎么办• linux中eq是什么意思• suse linux是免费的吗• linux中package是什么• matlab有linux版本吗
    1/1

    PHP中文网