HoRain云--Linux进程内存指标详解:VSS、RSS、PSS、USS及查看方法
·

🎬 HoRain 云小助手:个人主页
⛺️生活的理想,就是为了理想的生活!
⛳️ 推荐
前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。
目录
Linux进程内存指标详解:VSS、RSS、PSS、USS及查看方法

1. 内存指标定义
| 指标 | 全称 | 描述 | 特点 |
|---|---|---|---|
| VSS | Virtual Set Size | 进程申请的虚拟内存总量(含共享库、未实际使用的内存) | 包含所有虚拟地址空间,可能远大于实际物理内存占用 |
| RSS | Resident Set Size | 进程实际占用的物理内存(含共享库) | 所有进程的RSS总和可能超过系统总内存(共享内存重复计算) |
| PSS | Proportional Set Size | 按比例计算的物理内存(共享内存均分到各进程) | 更准确反映系统整体内存压力 |
| USS | Unique Set Size | 进程独占的物理内存(不含共享内存) | 直接衡量进程实际消耗的内存,用于排查内存泄漏 |
2. 查看内存指标的方式
2.1 使用 ps 命令查看VSS和RSS
ps -eo pid,vsz,rss,comm --sort=-rss | head
- VSZ:VSS值(单位KB)。
- RSS:常驻内存大小(单位KB)。
- 示例输出:
PID VSZ RSS COMMAND 1234 10240 2048 java 5678 8192 1024 nginx
2.2 使用 top 或 htop
top默认显示 VIRT(VSS) 和 RES(RSS)。- 按
F2进入htop设置界面,可添加 PSS 和 USS 列。
2.3 通过 /proc/[pid]/smaps 文件
查看进程的详细内存映射,包含每个内存段的PSS和USS:
cat /proc/1234/smaps | grep -iE 'Pss|Swap|Rss'
- 输出示例:
Rss: 1024 kB Pss: 512 kB Private_Clean: 768 kB # USS = Private_Clean + Private_Dirty Private_Dirty: 256 kB
2.4 使用 pmap 命令
显示进程的内存映射,支持扩展信息:
pmap -x 1234 # 查看RSS和内存段分布
pmap -XX 1234 # 显示更详细字段(需高版本pmap)
2.5 工具 smem 统计PSS和USS
安装后通过 smem 直接汇总内存使用:
smem -p -k -P "chrome" # 按进程名过滤,显示PSS、USS
- 参数说明:
-p:以百分比形式显示内存占比。-k:单位为KB。-u:显示用户维度统计。
3. 各指标应用场景
- VSS:评估进程虚拟内存需求(如JVM配置的堆大小)。
- RSS:初步判断进程内存占用,但可能高估实际使用。
- PSS:评估系统整体内存压力(适合多进程共享内存的场景)。
- USS:精准定位内存泄漏(仅计算进程独占内存)。
4. 内存泄漏排查示例
假设某个Java进程内存异常增长:
- 通过
smem或/proc/[pid]/smaps查看USS值是否持续上升。 - 若USS持续增加,结合堆转储(
jmap)分析对象分配。 - 若USS稳定但PSS增加,可能是共享库或缓存导致。
5. 指标对比总结
| 场景 | 推荐指标 | 原因 |
|---|---|---|
| 评估单个进程内存 | RSS | 快速查看,但需注意共享内存重复计算 |
| 系统整体内存压力 | PSS | 共享内存均摊,总和接近实际物理内存 |
| 内存泄漏排查 | USS | 仅统计独占内存,避免共享库干扰 |
| 虚拟内存分配分析 | VSS | 判断进程虚拟地址空间需求 |
6. 注意事项
- 权限要求:查看其他用户进程需
root权限。 - 容器环境:在Docker/K8s中需进入容器执行命令(如
docker exec)。 - 共享内存:RSS可能包含共享库、tmpfs等,需结合PSS/USS分析。
掌握这些内存指标及其工具,能更精准定位性能瓶颈和资源问题,尤其在处理高并发或内存敏感型应用时至关重要。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄
💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙
更多推荐



所有评论(0)