在linux系统的内存管理和进程监控场景中,rss是Resident Set Size的缩写,中文译为常驻内存集,指的是进程当前实际驻留在物理内存中的部分,不包含已经被换出到交换空间的内存页,也不包含尚未加载到物理内存的虚拟内存页。

rss的核心含义
linux系统中每个进程都有独立的虚拟地址空间,虚拟内存的大小通常远大于实际可用的物理内存。rss反映的是进程实际占用的物理内存大小,是评估进程内存使用情况的 core 指标之一。需要注意的是,rss包含了进程使用的共享库占用的物理内存,如果多个进程共用同一个共享库,那么该共享库的内存会被计入每个进程的rss中,因此所有进程的rss之和会大于系统实际的物理内存使用总量。
查看进程rss的常用方法
使用ps命令查看
ps命令是linux下查看进程信息的基础工具,通过指定输出字段可以获取进程的rss值。常用的命令如下:
# 查看所有进程的pid、进程名、rss(单位KB) ps -eo pid,comm,rss # 查看指定进程(比如进程号为1234)的rss ps -o rss= -p 1234
使用top命令查看
top命令可以实时展示进程的资源占用情况,其中RES列对应的就是进程的rss值,单位通常为KB。进入top界面后,按下f键可以自定义显示的字段,确保RES字段处于开启状态即可。
通过/proc文件系统查看
linux的/proc目录下每个进程都有对应的以pid命名的目录,其中的status文件包含了进程的内存信息,rss值就在其中。查看方式如下:
# 查看pid为1234的进程rss,单位KB cat /proc/1234/status | grep VmRSS
rss和其他内存指标的区别
在linux内存监控中,除了rss之外,还有几个常见的内存指标,需要区分它们的差异:
- VSZ(Virtual Memory Size):进程的虚拟内存大小,包含进程可以访问的所有虚拟地址空间,不管这部分内存是否已经加载到物理内存,或者是否被换出到交换空间,VSZ的值通常远大于rss。
- PSS(Proportional Set Size):按比例分配的常驻内存集,对于共享库的内存,会按照使用进程的数量进行平均分配,比如一个共享库被4个进程使用,那么每个进程的PSS中会计入该共享库1/4的内存大小,PSS更能反映进程实际占用的物理内存情况。
- USS(Unique Set Size):进程独占的物理内存大小,不包含任何共享内存部分,是进程真正独立占用的内存,用来评估进程退出后能够释放的物理内存大小。
rss使用注意事项
在使用rss评估进程内存占用时,需要注意以下几点:
- rss包含共享库内存,因此不能直接将所有进程的rss相加得到系统总物理内存使用量,否则会出现数值虚高的情况。
- rss不包含交换空间的内存,如果系统开启了交换分区,部分进程的内存可能被换出到交换空间,此时rss不能完全反映进程的总内存需求。
- 如果只需要评估进程独占的内存,建议结合USS和PSS一起分析,rss更适合作为进程物理内存占用的快速参考指标。
总结
rss是linux中衡量进程物理内存占用的基础指标,代表进程实际驻留在物理内存中的内存大小,通过ps、top、/proc文件系统等都可以快速获取这个值。理解rss的含义和局限性,能够帮助我们在系统运维和性能优化中更准确地判断进程的内存使用情况,避免被虚高的内存数值误导。