Linux内存管理 -- RSS与VSZ
RSS
RSS - Resident Set Size
常驻内存大小
用于表示进程(在RAM中)使用了多少内存包括:
共享库占用的内存(前提是共享库在内存中)
所有分配的占内存和堆内存不包括:
进入交换分区的内存
VSZ
VSZ - Virtual Set Size
虚拟内存大小
表明了该进程可以访问的所有内存包括:
进程所能访问的所有内存
被换出的内存
进入交换分区的内容
共享库占用的内存
RSS与VSZ的例子
假设进程A的二进制文件500K,链接了一个2500K的动态库,堆和栈共使用了200K,其中100K在内存中(剩下的被换出或不再被使用),一共加载了动态库中1000K的内容以及二进制文件中的400K内容到内存中,那么
RSS = 100 + 1000 + 400 = 1500K
VSZ = 500 + 2500 + 200 = 3200K
RSS与VSZ值的获取
ps
命令
ps命令是linux系统上一个默认的命令行工具,有助于用户了解进程的更详细的信息。
ps命令相关参数
ps -auxa: 显示一个终端所有的进程
u: 显示进程的归属用户及内存情况
x: 显示没有关联终端的进程
输出结果列表:
- USER:产生进程的用户
- PID:进程号
- %CPU:进程对CPU的占用率
- %MEM:进程占用的内存占比
- VSZ:进程使用的虚拟内存大小
- RSS:进程使用的物理内存大小
- TTY:进程关联的终端
- STAT:进程当前的状态
- START:进程的启动时间
- TIME:进程运行的时间
- COMMAND:当前进程执行的程序