linux中查看内存使用
2026/5/1 23:52:30 网站建设 项目流程

1、查看总内存,指令free -m

返回例子:

# free -m
total used free shared buff/cache available
Mem: 480 27 442 0 10 443
Swap: 0 0 0

其中available表示真正可用物理空间,如果只是malloc,并未使用,则不占用实际物理内存

2、查看具体进程占用内存

cat /proc/PID/status | grep -E "VmSize|VmRSS|VmData|VmStk|VmExe"

返回例子:

VmSize: 638436 kB
VmRSS: 4136 kB
VmData: 497268 kB
VmStk: 132 kB
VmExe: 920 kB

VmSize (638436 kB ≈ 623 MB)

  • 全称:Virtual Memory Size

  • 含义:进程的总虚拟内存大小

  • 包括:代码段、数据段、堆、栈、共享库、内存映射文件等

  • 关键点:这是虚拟地址空间,不全是实际占用的物理内存

  • 在例子中:当前进程 申请了约 623MB 的虚拟地址空间

VmRSS (4136 kB ≈ 4 MB)

  • 全称:Resident Set Size

  • 含义:进程实际占用的物理内存大小

  • 包括:正在使用的代码、数据、堆栈等

  • 关键点:这是真正的内存占用free -m中的used包含这个

  • 在例子中:当前进程 实际只用了 4MB 物理内存!

VmData (497268 kB ≈ 485 MB)

  • 全称:Data segment size

  • 含义堆(heap)的大小(malloc分配的地方)

  • 包括:动态分配的内存、全局变量、静态变量

  • 关键点:大部分是虚拟分配,不一定占用物理内存

  • 在例子中:当前进程 的堆分配了 485MB 虚拟空间

VmStk (132 kB ≈ 0.13 MB)

  • 全称:Stack size

  • 含义栈(stack)的大小

  • 包括:局部变量、函数调用信息

  • 关键点:通常较小,每个线程有自己的栈

  • 在例子中:主线程栈大小约 0.13MB

VmExe (920 kB ≈ 0.9 MB)

  • 全称:Executable code size

  • 含义可执行代码的大小

  • 包括:程序本身的机器指令

  • 关键点:通常只读,可以在进程间共享

  • 在例子中:当前进程 可执行文件约 0.9MB

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询