pmap

pmap 显示“其他对象”的映射 - 我如何找出这些对象是什么?
pmap

pmap 显示“其他对象”的映射 - 我如何找出这些对象是什么?

我正在调查我的 Rust 应用程序中的某种内存泄漏。内存保持稳定增长(从 30M 左右开始,每天增长 50M)。该应用程序是用 Rust 编写的,它几乎只是将 XDP/BPF 程序附加到一些接口,并通过 BPF 映射读取一些数据并发布一些指标。 有趣的是,“泄漏”仅发生在我们的测试环境中(到目前为止,生产环境中的内存使用情况非常稳定)。 下面是一些 pmap 输出(我已经过滤掉了*.so,anon_inode:[perf_event]因为有很多,它们不是问题的一部分)。 看看这个,我的泄漏似乎不在堆上(所以分析堆没有意义)。我想了解其他对象的未命名映射是什么...

Admin

如何检查给定“root”权限的内核的内存映射?
pmap

如何检查给定“root”权限的内核的内存映射?

我用于pmap <pid>检查用户空间进程的内存映射<pid>。 如何检查给定“root”权限(即所有功能)的内核的内存映射? 我感兴趣的原因是我正在开发内核模块,因此想知道符号驻留在哪个内存段/部分。 奖金: 另外,为了“离线”获取此信息,我尝试如下: $ sudo readelf -a /boot/vmlinuz-5.8.0-50-generic readelf: Error: Not an ELF file - it has the wrong magic bytes at the start 但显然,Linux 映像不是 E...

Admin

用于处理大型代码段的内存映射
pmap

用于处理大型代码段的内存映射

我知道pmap一个进程显示了内存映射是如何完成的。例如,pmap 输出的第一行显示了到进程可执行文件的文本段的内存映射。假设我有一个非常大的可执行文件并且我的代码大小很大。对于小文本段(小可执行文件),pmamp 显示400000 - 401000 - 4096 B - 4 KiB映射的文本段。 (1) 如果文本段真的很大,它如何映射? (2) 它是否根据代码执行进度所需的页面动态映射? ...

Admin

进程的较高虚拟内存地址(内核映射)用于什么?
pmap

进程的较高虚拟内存地址(内核映射)用于什么?

我对 Linux 进程的更高虚拟地址的内核映射有一些疑问: 它是否映射到存储在 RAM 中的内核文本段(我读到vmlinuz将被提取到 RAM)? 它有什么用呢? 进程的pmap表示它映射到 exe 的段、共享内存、堆栈、堆。我还可以看到映射的更高地址内核吗? ...

Admin

获取页面起始地址
pmap

获取页面起始地址

我想获取内存页的开头,该页包含一个函数。 就我而言,我尝试实现主功能的页面开头。其中0x400a80,我认为它位于内存的代码部分。如果您能证实这是否属实,我将不胜感激。 据我了解,地址0x400a80位于页面中。 当我使用 显示进程的内存段时pmap,它显示以大小 8K 开头的段0x400000,下一部分以0x601000大小 4K 开头。 我想获取地址,0x400000因为它有函数的地址main()。当我有一个地址驻留在该页面时,如何获得该页面的起始地址? linux 有没有内置的方法可以做? ...

Admin

PS 显示与 Pmap 和 Smem 不同的 RSS 值
pmap

PS 显示与 Pmap 和 Smem 不同的 RSS 值

我想获取一个进程的内存消耗情况。我在用RSS参数来确定它。 我也一样RSS当我使用pmap -xx <PID>工具时的价值smem。但是当我用来ps v <PID>获取 RSS 时,它显示出不同的值。 我知道pmap他们smem使用/proc/pid/smaps文件来获取RSS价值,但我不知道ps工具。 ps工具中此计算的基础是什么?哪个是正确的ps或pmap和smem ...

Admin

获取进程的内存使用情况:将 pmap 与 top 进行比较
pmap

获取进程的内存使用情况:将 pmap 与 top 进行比较

我想获取一个进程的内存使用情况,似乎pmap可以做到这一点。但是,它返回的值与我在top命令中看到的不同。 # pmap 22080 | grep total total 6588952K # top | grep 22080 22080 ghatee 20 0 6588948 5.873g 11936 R 100.0 9.4 1120:17 pw.x 是什么原因? ...

Admin