You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取进程的总内存占用(含Swap交换空间)?

获取进程含交换空间的总内存占用

要统计进程实际使用的物理内存+交换空间总占用,你可以用以下几种实用方法:

方法1:读取/proc文件系统(最直接准确)

每个进程的内存数据都由内核实时记录在/proc/<PID>/status文件中,其中关键字段:

  • VmRSS:进程当前占用的物理内存(和/usr/bin/time -v里的Maximum resident set size对应)
  • VmSwap:进程换出到交换空间的内存大小

直接读取这两个字段并相加,就是总内存占用:

# 替换<PID>为目标进程的ID
grep -E 'VmRSS|VmSwap' /proc/<PID>/status

输出示例:

VmRSS: 123456 kB
VmSwap: 65432 kB

如果需要统计运行期间的峰值,你可以定时采样这个文件的数据,记录最大值即可。

方法2:使用ps命令快速查看

ps支持直接输出进程的物理内存和交换空间占用,通过-o参数指定需要的字段:

ps -o pid,rss,swap,cmd -p <PID>

字段说明:

  • rss:物理内存占用(单位kB)
  • swap:交换空间占用(单位kB)

将这两列数值相加,就能得到该进程的总内存占用。去掉-p <PID>参数可查看所有进程的对应数据。

方法3:使用pmap查看内存映射详情

pmap可以展示进程的内存映射分区,通过-x参数查看扩展统计信息:

pmap -x <PID> | tail -2

输出的最后两行会汇总进程的整体内存使用:

total kB 1234567 123456 65432
^^^ 此列为总swap占用

其中第三列是RSS(物理内存),第四列是Swap占用,两者相加即为总内存。

方法4:用top实时监控

在top界面中操作:

  1. 按下f键进入字段选择界面
  2. 找到SWAP字段,按空格选中
  3. 按下q返回主界面

此时你能看到每个进程的RES(物理内存)和SWAP列,两者之和就是该进程的总内存占用。按下O键还可以选择按SWAP或RES排序。


内容的提问来源于stack exchange,提问作者Thorkil Værge

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 21:57:38