Linux怎么查看进程映射的地址空间

星芳君_2525

星芳君_2525

2026-07-18

803人浏览

原创

pmap -x pid是最有效方式,可一次性查看地址范围、rss(实际驻留内存)、权限和映射来源;不加-x则缺失rss、pss等关键列,无法判断真实内存占用与泄漏。

linux怎么查看进程映射的地址空间

pmap -x PID 是最直接有效的方式,能一次性看到地址范围、实际驻留内存(RSS)、权限和映射来源——不加 -x 会漏掉关键大小和物理内存占用信息,基本等于白看。

怎么准确拿到目标进程的 PID

别用 ps aux | grep python 这种方式直接传参给 pmap,grep 自身进程常被误匹配,导致 pmap 报错 No such process:

  • 精准匹配命令行:用 pgrep -f "myapp.py",它只返回数字 PID,且避开 grep 进程本身
  • 查 systemd 服务:比如 nginx,用 systemctl show --property MainPID nginx.service | cut -d= -f2
  • 查多实例 Java 应用:pgrep -f "spring-boot.*prod" 比 pidof java 更可靠,后者可能返回多个无关 PID

为什么必须用 pmap -x 而不是默认格式

默认 pmap PID 只显示十六进制起始地址、Kbytes 和 Mapping,但你看不到 RSS(真正占物理内存的页)和 PSS(按共享比例摊分的内存),无法判断是否真有泄漏:

Linux installer
Linux installer

先解析安全源,运行本地CLI安装、启动、卸载Linux桌面应用。用户请求时使用。

下载
  • pmap -x PID 多出 RSS 和 PSS 列,对排查堆膨胀、匿名映射泄漏至关重要
  • RSS 显著大于 Kbytes?说明该段几乎全驻留,可能是缓存或未释放内存
  • Kbytes 很大但 RSS 很小?大概率是 mmap 分配后还没 touch,属于“虚占”

从输出里快速识别关键内存段含义

每行是一个 VMA,重点盯这四类:

  • [heap]:brk 区,权限通常是 rw-p;如果 Kbytes 和 RSS 持续增长,就是 malloc 泄漏的第一信号
  • [stack] 或 [stack:12345]:主线程或线程栈;单个超 8MB 就该查递归或大局部数组
  • 带路径的共享库行(如 /lib64/libc.so.6):注意同一库出现多行,通常对应代码段(r-xp)、数据段(rw-p),设备号和 inode 一致才真是同一文件映射
  • [anon] 或空 Mapping:匿名映射,常见于 JVM DirectByteBuffer、Python 的 mmap.MAP_ANONYMOUS;大量碎片化小块且 RSS 不降,说明底层没调 munmap

真正难的是把 pmap -x 输出和实际行为对应起来——比如看到一块 2GB 的 rw-p [anon],得立刻想到是不是用了 mmap(MAP_ANONYMOUS) 分配但忘了释放,而不是直接怀疑是堆泄漏。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

4010

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3433

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2593

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6330

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5962

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3473

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2965

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3199

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

297

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习