[转帖]pmap内存分析工具

pmap,内存,分析,工具 · 浏览次数 : 0

小编点评

**进程内存映射报告** ``` pmap -d 537 |less537: ``` **内容解析:** * **pmap**:进程内存映射工具。 * **-d 537**:指定要查看的进程的 ID,即 537。 * **|less537:** 将输出限制到标准输出,并使用 `less` 命令进行分页显示。 * **:** 表示输出将被分为了多个部分显示。 **输出:** ``` /usr/sbin/NetworkManager --no-daemonAddress Kbytes Mode Offset Device Mapping00007fff8148b000 132 rw--- 0000000000000000 000:00000 [ stack ]00007fff814fb000 8 r-x-- 0000000000000000 000:00000 [ anon ]ffffffffff600000 4 r-x-- 0000000000000000 000:00000 [ anon ]mapped: 478476K writeable/private: 26940K shared: 28K ``` **解释:** * **/usr/sbin/NetworkManager --no-daemonAddress**:该命令显示进程内存映射的信息,但由于该进程不是守护进程,该信息可能无法正常显示。 * **Kbytes Mode**:内存映射的类型。 * **Offset**:内存映射的偏移量。 * **Device**:内存映射所使用的设备。 * **Mapping00007fff8148b000**:内存映射的地址。 * **page frame**:虚拟地址和物理地址之间的对应关系。 * **r-x--**:内存映射为读-写。 **注意:** 该示例仅显示了部分内存映射信息。为了获取完整内存映射报告,可以使用 `pmap` 的 `-v`选项。

正文

https://www.cnblogs.com/zh-dream/p/14848344.html

 

简介

 pmap - report memory map of a process    进程的内存映射报告

语法:

pmap [options] pid [...]

选项

选项 含义
-x 显示扩展的信息
-X 显示比-x更详细的信息。但是会按照文件/proc/PID/smaps改变显示格式(显示的信息是该文件内容的简化)
-XX 显示一切内核提供的信息
-d, --device 以设备格式显示
-q, --quiet 不显示头尾信息
-p, --show-path 在映射中显示路径
-A, --range=<low>[,<high>] 只显示指定范围的地址空间,低地址和高地址分别用low和high指定,以逗号分隔
-h, --help 打印帮助
-V, --version 输出版本信息

使用示例

 
# pmap -d 537 |less
537:   /usr/sbin/NetworkManager --no-daemon
Address           Kbytes Mode  Offset           Device    Mapping

00007fff8148b000     132 rw--- 0000000000000000 000:00000   [ stack ]
00007fff814fb000       8 r-x-- 0000000000000000 000:00000   [ anon ]
ffffffffff600000       4 r-x-- 0000000000000000 000:00000   [ anon ]
mapped: 478476K    writeable/private: 26940K    shared: 28K
 

 补充:

什么是虚拟内存?

虚拟内存作为一种逻辑层,处于应用程序的内存请求与硬件内存管理单元(Memory Management Unit,MMU)之间。

虚拟内存的用途和特点:

  1. 若干个进程可以并发地执行
  2. 应用程序所需内存大于可用物理内存时也可以运行
  3. 程序只有部分代码装入内存时进程可以执行它
  4. 允许每个进程访问可用物理内存的子集
  5. 进程可以共享库函数或程序的一个单独内存映像
  6. 程序是可重定位的,也就是说,可以把程序放在物理内存的任何地方
  7. 程序员可以编写与机器无关的代码,可以不关心物理内存的组织结构

虚拟内存子系统的主要成分是虚拟地址空间(virtual addres space)的概念。进程所使用的一组内存地址不同于物理内存地址。当进程使用一个虚拟地址时,内核和MMU协同定位其在内存中的实际物理位置。

现代CPU包含自动把虚拟地址转换成物理地址的硬件电路,为了达到这个目标,把可用RAM划分成长度为4KB或8KB的页框(page frame),引入一组页表来指定虚拟地址和物理地址之间的对应关系。这样一块连续的虚拟地址请求可以通过分配一组非连续的物理地址页框得到满足。

 

与[转帖]pmap内存分析工具相似的内容:

[转帖]pmap内存分析工具

https://www.cnblogs.com/zh-dream/p/14848344.html 简介 pmap - report memory map of a process 进程的内存映射报告 语法: pmap [options] pid [...] 选项 选项 含义 -x 显示扩展的信息 -

[转帖]linux内存分析工具pmap

👦博主介绍:程序员悟啦(乌拉~) ✍个人仓库:码云 🔊座右铭:“懒”对一个人的毁灭性有多大,早起的重要性就多大。 📚免责声明:文章由博主原创、部分文章整理于网络,仅供学习和知识分享 💬相遇是缘,既然来了就拎着小板凳🪑坐下来一起唠会儿👁‍🗨,如果在文中有所收获,请别忘了一键三连,动动你发

[转帖]【技术剖析】9. 使用 NMT 和 pmap 解决 JVM 资源泄漏问题

https://bbs.huaweicloud.com/forum/thread-168749-1-1.html 作者:宋尧飞 > 编者按:笔者使用 JDK 自带的内存跟踪工具 NMT 和 Linux 自带的 pmap 解决了一个非常典型的资源泄漏问题。这个资源泄漏是由于 Java 程序员不正确地使

[转帖]Cheat sheet: understanding the pmap(1) output

https://www.labcorner.de/cheat-sheet-understanding-the-pmap1-output/ pmap(1) can be used to list the individual address areas which are mapped into a

[转帖]

Linux ubuntu20.04 网络配置(图文教程) 因为我是刚装好的最小系统,所以很多东西都没有,在开始配置之前需要做下准备 环境准备 系统:ubuntu20.04网卡:双网卡 网卡一:供连接互联网使用网卡二:供连接内网使用(看情况,如果一张网卡足够,没必要做第二张网卡) 工具: net-to

[转帖]

https://cloud.tencent.com/developer/article/2168105?areaSource=104001.13&traceId=zcVNsKTUApF9rNJSkcCbB 前言 Redis作为高性能的内存数据库,在大数据量的情况下也会遇到性能瓶颈,日常开发中只有时刻

[转帖]ISV 、OSV、 SIG 概念

ISV 、OSV、 SIG 概念 2022-10-14 12:29530原创大杂烩 本文链接:https://www.cndba.cn/dave/article/108699 1. ISV: Independent Software Vendors “独立软件开发商”,特指专门从事软件的开发、生产、

[转帖]Redis 7 参数 修改 说明

2022-06-16 14:491800原创Redis 本文链接:https://www.cndba.cn/dave/article/108066 在之前的博客我们介绍了Redis 7 的安装和配置,如下: Linux 7.8 平台 Redis 7 安装并配置开机自启动 操作手册https://ww

[转帖]HTTPS中间人攻击原理

https://www.zhihu.com/people/bei-ji-85/posts 背景 前一段时间,公司北京地区上线了一个HTTPS防火墙,用来监听HTTPS流量。防火墙上线之前,邮件通知给管理层,我从我老大那里听说这个事情的时候,说这个有风险,然后意外地发现,很多人原来都不知道HTTPS防

[转帖]关于字节序(大小端)的一点想法

https://www.zhihu.com/people/bei-ji-85/posts 今天在一个技术群里有人问起来了,当时有一些讨论(不完全都是我个人的观点),整理一下: 为什么网络字节序(多数情况下)是大端? 早年设备的缓存很小,先接收高字节能快速的判断报文信息:包长度(需要准备多大缓存)、地