linux 内核修改rss,什么是Linux内存管理中的RSS和VSZ

RSS是驻留集大小,用于显示分配给该进程的内存量,并且位于RAM中。它不包括换出的内存。它确实包括来自共享库的内存,只要这些库中的页面实际上在内存中。它确实包括所有堆栈和堆内存。

VSZ是虚拟内存大小。它包括进程可以访问的所有内存,包括被换出的内存,已分配但未使用的内存以及来自共享库的内存。

因此,如果进程A具有500K二进制文件并且链接到2500K共享库,则具有200K的堆栈/堆分配,其中100K实际上在内存中(其余是交换或未使用),并且它实际上只加载了1000K的共享库然后是400K自己的二进制文件:

RSS: 400K + 1000K + 100K = 1500K

VSZ: 500K + 2500K + 200K = 3200K

由于部分内存是共享的,因此许多进程可能会使用它,因此如果将所有RSS值相加,您可以轻松获得比系统更多的空间。

在程序实际使用之前,分配的内存也可能不在RSS中。因此,如果你的程序预先分配了一堆内存,然后随着时间的推移使用它,你可以看到RSS上升,VSZ保持不变。

还有PSS(比例设定大小)。这是一种较新的度量,它将共享内存跟踪为当前进程使用的比例。因此,如果有两个进程使用之前的相同共享库:

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

线程都共享相同的地址空间,因此每个线程的RSS,VSZ和PSS与进程中的所有其他线程相同。使用ps或top在linux / unix中查看此信息。

除此之外还有更多方法,了解更多信息请查看以下参考资料:

http://manpages.ubuntu.com/manpages/en/man1/ps.1.html

https://web.archive.org/web/20120520221529/http://emilics.com/blog/article/mconsumption.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值