在 Linux 中查看进程内存占用的方法

在 Linux 中查看进程内存占用的方法

在 Linux 系统中,有多种方法可以查看进程或程序的内存使用情况。以下是几种常用的方法:

1. 使用 top 命令

top 是一个实时监控系统进程和资源使用情况的工具。

  • 运行后按 M 键可以按内存使用排序
  • 主要关注 RES (常驻内存) 和 %MEM (内存使用百分比) 列
  • q 退出

2. 使用 htop 命令 (更友好的交互式工具)

  • 需要先安装:sudo apt install htop (Ubuntu/Debian) 或 sudo yum install htop (CentOS/RHEL)
  • 界面更直观,可以直接用鼠标点击列名排序
  • 显示的信息与 top 类似但更易读

3. 使用 ps 命令

或查看特定进程:

  • %mem:内存使用百分比
  • rss:常驻内存集大小 (KB)
  • vsz:虚拟内存大小 (KB)

4. 使用 pmap 命令

查看进程的详细内存映射:

  • 显示进程的内存使用详情
  • -x 选项显示扩展信息
  • 最后一行会显示总内存使用量

5. 查看 /proc/[PID]/status 文件

或查看内存概要:

  • VmSize:虚拟内存大小
  • VmRSS:实际使用的物理内存
  • VmData:数据段大小
  • VmStk:堆栈大小
  • VmExe:可执行内存大小
  • VmLib:共享库内存大小

6. 使用 free 命令查看系统总体内存使用

  • -h 选项以人类可读格式显示 (GB/MB/KB)
  • 显示系统总内存、已用内存、空闲内存等信息

7. 使用 smem 命令 (需要安装)

  • 按实际内存使用排序 (-s rss)
  • -k 显示单位为 KB
  • -u 按用户分组

理解内存指标

  • VIRT/VmSize:虚拟内存总量 (包括共享库、分配但未使用的内存等)
  • RES/RSS:实际使用的物理内存 (不包括交换分区)
  • SHR:共享内存大小 (多个进程共享的内存)
  • %MEM:占物理内存的百分比

实际应用示例

  1. 查找 Java 进程的内存使用:
  1. 查看进程 ID 为 1234 的详细内存信息:
  1. 按内存使用排序所有进程:
  1. 持续监控特定进程的内存:

选择哪种方法取决于你需要查看的详细程度和使用的便利性。对于快速查看,tophtop 是最方便的;如果需要更详细的分析,pmap/proc 文件系统提供更多信息。

码先生
Author: 码先生

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注