千家信息网

进程内存使用PSS和VSZ的区别

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,进程内存使用PSS和VSZ的区别,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。可以使用 ps aux 命令获取每进程的内存使用,其中
千家信息网最后更新 2026年10月31日进程内存使用PSS和VSZ的区别

进程内存使用PSS和VSZ的区别,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

可以使用 ps aux 命令获取每进程的内存使用,其中VSZ表示虚拟内存使用大小,RSS(resident set size)表示常驻内存的大小,来自于/proc/PID/status文件。

~ # ps aux | headUSER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMANDroot         1  0.4  0.1  18984  1968 ?        Ss   10:58   0:47 /sbin/helloroot         2  0.0  0.0      0     0 ?        S    10:58   0:00 [kthreadd]root         3  0.0  0.0      0     0 ?        S    10:58   0:10 [ksoftirqd/0]

但RSS并不代表进程的实际内存消耗,因为不同的进程之间会共享内存,所以把所有进程RSS进行累加的方法会重复计算共享内存,得到的结果是偏大的。正确的方式是累加/proc/PID/smaps中的Pss(process's proportional share of this mapping)字段。选取某个vma的统计数据:

01e70000-01ef6000 rw-p 00000000 00:00 0                                  [heap]Size:                536 kBRss:                 408 kBPss:                 408 kBShared_Clean:          0 kBShared_Dirty:          0 kBPrivate_Clean:         0 kBPrivate_Dirty:       408 kBReferenced:          408 kBAnonymous:           408 kBAnonHugePages:         0 kBShmemPmdMapped:        0 kBShared_Hugetlb:        0 kBPrivate_Hugetlb:       0 kBSwap:                  0 kBSwapPss:               0 kBKernelPageSize:        4 kBMMUPageSize:           4 kBLocked:                0 kBVmFlags: rd wr mr mw me ac sd

每个虚拟内存区域(VMA)是一个连续的虚拟地址范围,并且它们不会重叠。一个vm_area_struct实例完整的描述了一个内存区域,包括起止地址、访问权限标志以及用于指出被映射文件(如果存在)的vm_file字段。其中,size表示这段虚拟空间的大小,Rss表示驻留内存的大小,Pss表示分摊后的内存大小,Referenced表示总共被引用或被访问的内存大小,Anonymous表示没有映射到文件的内存大小,Swap也是匿名内存,表示交换分区内存的大小。各个字段的关系如下:

USS = Private_Clean + Private_DirtyPss = USS + (Shared_Clean + Shared_Dirty)/nRSS = USS + Shared_Clean + Shared_Dirty

以hello进程为例,使用前面介绍的统计内存的数据:

使用ps~ # ps aux | grep /sbin/helloroot      1182  0.7  0.2 474208  5636 ?        Sl   11:00   1:38 /sbin/hello
grep -w Pss /proc/1182/smaps | awk 'BEGIN{sum=0} {sum+=$2} END {print "total mem:"sum}'total mem:1752

可以看到,RSS与PSS相差非常大。进程的内存统计一定是使用Pss。

关于进程内存使用PSS和VSZ的区别问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

内存 进程 大小 字段 文件 问题 统计 区域 地址 数据 方法 更多 帮助 解答 不同 易行 简单易行 之间 代表 内容 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广东猪兼强互联网科技有限公司 伴你行互联网科技有限公司 齐家互联网科技有限公司 互联网科技股午盘股票涨跌 互联网科技公司招聘 互联网科技公司的市场部门 互联网教育科技公司vipkid 小米互联网科技园设置 互联网时代科技改变生活 互联网经济与金融科技 互联网科技大奖都有哪些公司 健康食品互联网创新科技园项目 翼展科技 首家互联网医院 怎样加入科技互联网 小米互联网科技园入驻 富国互联网科技002692 广州有谷有贝互联网科技有限公司 互联网科技平台产品运营 科技互联网经济论坛 互联网科技大佬云集 上海挚品互联网科技有限公司 奇酷互联网络科技公司 互联网汽车科技小镇 茂名市互联网科技产业园 洛阳昕诺飞互联网科技有限公司 佛山市翊博互联网络科技有限公司 半导体行业属于互联网高科技类吗 互联网公司属于科技吗 杭州融税互联网科技有限公司 河南商务圈互联网科技有限公司
0