插件窝 干货文章 linux怎么查看进程占用内存

linux怎么查看进程占用内存

内存 占用 进程 bash 425    来源:    2025-04-05

在 Linux 系统中,可以通过以下几种方法查看进程占用内存的情况:


1. 使用 top 命令

  • 实时动态查看进程内存占用,按内存排序: bash top
    • 按下 M(大写)按内存使用率排序。
    • 关键列:
    • RES:进程实际占用的物理内存(单位:KB)。
    • %MEM:内存占用百分比。
    • 退出按 q

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

  • 安装(如未安装): bash sudo apt install htop # Debian/Ubuntu sudo yum install htop # CentOS/RHEL
  • 运行: bash htop
    • 直接显示内存占用,支持鼠标点击排序。

3. 使用 ps 命令

  • 查看特定进程的内存: bash ps aux | grep <进程名或PID>
    • 关键列:
    • RSS(Resident Set Size):实际物理内存占用(单位:KB)。
    • %MEM:内存占用百分比。
    • 示例(按内存排序): bash ps aux --sort=-%mem | head -n 10 # 显示内存占用最高的前10个进程

4. 使用 pmap 命令

  • 查看进程的详细内存映射: bash pmap -x <PID>
    • 输出中的 RSS 列显示实际内存占用。

5. 通过 /proc 文件系统

  • 直接读取进程内存信息: bash cat /proc/<PID>/status | grep -i vm
    • 或查看详细统计: bash cat /proc/<PID>/statm
    • 输出解释(单位:页,通常 1页=4KB):
      • 第1列:总虚拟内存大小。
      • 第2列:RSS(物理内存占用)。

6. 使用 free 命令(查看系统整体内存)

  • 查看系统内存使用概况: bash free -h
    • 输出中的 used/available 显示已用和可用内存。

7. 使用 smem(高级统计工具)

  • 安装: bash sudo apt install smem # Debian/Ubuntu sudo yum install smem # CentOS/RHEL
  • 按用户或进程统计内存: bash smem -u # 按用户统计 smem -p # 按进程显示百分比

常见问题

  • VIRT vs RES
    • VIRT 是虚拟内存(包含共享库、映射文件等)。
    • RES 是实际物理内存占用(更关键)。
  • 共享内存:部分内存可能被多个进程共享(如库文件),smem 工具可计算唯一内存占用(USS)。

总结

  • 快速检查:tophtop
  • 精确统计:ps aux --sort=-%memsmem
  • 深度分析:pmap/proc/<PID>/status

根据需求选择合适的方法即可!