Linux进程内存分析pmap命令

2024-03-18 09:58

本文主要是介绍Linux进程内存分析pmap命令,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

名称:

      pmap - report memory map of a process(查看进程的内存映像信息)

用法

      pmap [ -x | -d ] [ -q ]  pids...

      pmap -V

选项含义

      -x   extended       Show the extended format. 显示扩展格式

      -d  device            Show the deviceformat.   显示设备格式

      -q   quiet              Do not display some header/footerlines. 不显示头尾行

      -V   show version   Displays version of program. 显示版本

扩展格式和设备格式域:

       Address:  start address ofmap  映像起始地址

       Kbytes: size of map in kilobytes  映像大小

       RSS:  resident set size inkilobytes  驻留集大小

       Dirty:  dirty pages (both sharedand private) in kilobytes  脏页大小

       Mode:  permissions on map 映像权限: r=read,w=write, x=execute, s=shared, p=private (copy on write) 

       Mapping:  file backing the map ,or '[ anon ]' for allocated memory, or '[ stack ]' for the program stack.  映像支持文件,[anon]为已分配内存[stack]为程序堆栈

       Offset: offset into the file  文件偏移

       Device:  device name(major:minor)  设备名

举例:

查看进程1的设备格式

[root@C44 ~]#  pmap -d 1

1:  init [5]                   

Address  Kbytes Mode  Offset           Device    Mapping

00934000      88 r-x-- 0000000000000000 008:00005ld-2.3.4.so

0094a000       4 r---- 0000000000015000 008:00005ld-2.3.4.so

0094b000       4 rw--- 0000000000016000 008:00005ld-2.3.4.so

0094e000   1188 r-x-- 0000000000000000 008:00005 libc-2.3.4.so

00a77000       8 r---- 0000000000129000 008:00005libc-2.3.4.so

00a79000       8 rw--- 000000000012b000 008:00005libc-2.3.4.so

00a7b000       8 rw--- 0000000000a7b000 000:00000   [ anon ]

00a85000      52 r-x-- 0000000000000000 008:00005libsepol.so.1

00a92000       4 rw--- 000000000000c000 008:00005libsepol.so.1

00a93000      32 rw--- 0000000000a93000 000:00000   [ anon ]

00d9d000      52 r-x-- 0000000000000000 008:00005libselinux.so.1

00daa000       4 rw--- 000000000000d000 008:00005libselinux.so.1

08048000      28 r-x-- 0000000000000000 008:00005 init

0804f000       4 rw--- 0000000000007000 008:00005 init

084e1000    132 rw--- 00000000084e1000 000:00000  [ anon ]

b7f5d000       8 rw--- 00000000b7f5d000 000:00000   [ anon ]

bffee000      72 rw--- 00000000bffee000 000:00000   [ stack ]

ffffe000       4 ----- 0000000000000000 000:00000   [ anon ]

mapped: 1700K    writeable/private: 276K    shared: 0K

最后一行的值

  • mapped 表示该进程映射的虚拟地址空间大小,也就是该进程预先分配的虚拟内存大小,即ps出的vsz
  • writeable/private  表示进程所占用的私有地址空间大小,也就是该进程实际使用的内存大小     
  • shared 表示进程和其他进程共享的内存大小

查看进程1的设备格式,不显示头尾行

[root@C44 ~]#  pmap -d -q 1

1:  init [5]                   

00934000      88 r-x-- 0000000000000000 008:00005ld-2.3.4.so

0094a000       4 r---- 0000000000015000 008:00005ld-2.3.4.so

0094b000       4 rw--- 0000000000016000 008:00005ld-2.3.4.so

0094e000   1188 r-x-- 0000000000000000 008:00005 libc-2.3.4.so

00a77000       8 r---- 0000000000129000 008:00005libc-2.3.4.so

00a79000       8 rw--- 000000000012b000 008:00005libc-2.3.4.so

00a7b000       8 rw--- 0000000000a7b000 000:00000   [ anon ]

00a85000      52 r-x-- 0000000000000000 008:00005libsepol.so.1

00a92000       4 rw--- 000000000000c000 008:00005libsepol.so.1

00a93000      32 rw--- 0000000000a93000 000:00000   [ anon ]

00d9d000      52 r-x-- 0000000000000000 008:00005libselinux.so.1

00daa000       4 rw--- 000000000000d000 008:00005libselinux.so.1

08048000      28 r-x-- 0000000000000000 008:00005 init

0804f000      4 rw--- 0000000000007000008:00005 init

084e1000    132 rw--- 00000000084e1000 000:00000  [ anon ]

b7f5d000       8 rw--- 00000000b7f5d000 000:00000   [ anon ]

bffee000      72 rw--- 00000000bffee000 000:00000   [ stack ]

ffffe000       4 ----- 0000000000000000 000:00000   [ anon ]

[root@C44 ~]# 

查看进程1的扩展格式

[root@C44 ~]#  pmap -x 1

1:  init [5]                   

Address  Kbytes     RSS    Anon Locked Mode   Mapping

00934000      88      -       -       - r-x-- ld-2.3.4.so

0094a000       4      -       -       - r---- ld-2.3.4.so

0094b000       4      -       -       - rw--- ld-2.3.4.so

0094e000   1188       -       -      - r-x--  libc-2.3.4.so

00a77000       8      -       -       - r---- libc-2.3.4.so

00a79000       8      -       -       - rw--- libc-2.3.4.so

00a7b000       8      -       -       - rw---    [ anon ]

00a85000      52      -       -       - r-x-- libsepol.so.1

00a92000       4      -       -       - rw--- libsepol.so.1

00a93000     32       -      -       - rw---    [ anon ]

00d9d000      52      -       -       - r-x-- libselinux.so.1

00daa000       4      -       -       - rw--- libselinux.so.1

08048000      28      -       -       - r-x-- init

0804f000       4      -       -      - rw---  init

084e1000    132       -       -      - rw---    [ anon ]

b7f5d000       8      -       -       - rw---    [ anon ]

bffee000      72      -       -       - rw---    [ stack ]

ffffe000       4      -       -       - -----    [ anon ]

-------- ------- ------- ------- -------

total kB   1700       -       -      -

[root@C44 ~]# 

 

循环显示进程3066的设备格式的最后1行,间隔2秒,

[root@C44 ~]#  while true; do pmap -d  3066 | tail -1; sleep 2; done

mapped: 5412K    writeable/private: 2028K    shared: 0K

mapped: 5412K    writeable/private: 2028K    shared: 0K

mapped: 5412K    writeable/private: 2028K    shared: 0K

mapped: 5412K    writeable/private: 2028K    shared: 0K

mapped: 5412K    writeable/private: 2028K    shared: 0K

mapped: 5412K    writeable/private: 2028K    shared: 0K

mapped: 5412K    writeable/private: 2028K    shared: 0K

mapped: 5412K    writeable/private: 2028K    shared: 0K

mapped: 5412K    writeable/private: 2028K    shared: 0K

mapped: 5412K    writeable/private: 2028K    shared: 0K

mapped: 5412K    writeable/private: 2028K    shared: 0K

mapped: 5412K    writeable/private: 2028K    shared: 0K

mapped: 5412K    writeable/private: 2028K    shared: 0K

这篇关于Linux进程内存分析pmap命令的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/821979

相关文章

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

Javaee多线程之进程和线程之间的区别和联系(最新整理)

《Javaee多线程之进程和线程之间的区别和联系(最新整理)》进程是资源分配单位,线程是调度执行单位,共享资源更高效,创建线程五种方式:继承Thread、Runnable接口、匿名类、lambda,r... 目录进程和线程进程线程进程和线程的区别创建线程的五种写法继承Thread,重写run实现Runnab

PowerShell中15个提升运维效率关键命令实战指南

《PowerShell中15个提升运维效率关键命令实战指南》作为网络安全专业人员的必备技能,PowerShell在系统管理、日志分析、威胁检测和自动化响应方面展现出强大能力,下面我们就来看看15个提升... 目录一、PowerShell在网络安全中的战略价值二、网络安全关键场景命令实战1. 系统安全基线核查

在Linux中改变echo输出颜色的实现方法

《在Linux中改变echo输出颜色的实现方法》在Linux系统的命令行环境下,为了使输出信息更加清晰、突出,便于用户快速识别和区分不同类型的信息,常常需要改变echo命令的输出颜色,所以本文给大家介... 目python录在linux中改变echo输出颜色的方法技术背景实现步骤使用ANSI转义码使用tpu

linux hostname设置全过程

《linuxhostname设置全过程》:本文主要介绍linuxhostname设置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录查询hostname设置步骤其它相关点hostid/etc/hostsEDChina编程A工具license破解注意事项总结以RHE

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

Java进程异常故障定位及排查过程

《Java进程异常故障定位及排查过程》:本文主要介绍Java进程异常故障定位及排查过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、故障发现与初步判断1. 监控系统告警2. 日志初步分析二、核心排查工具与步骤1. 进程状态检查2. CPU 飙升问题3. 内存

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

Java内存分配与JVM参数详解(推荐)

《Java内存分配与JVM参数详解(推荐)》本文详解JVM内存结构与参数调整,涵盖堆分代、元空间、GC选择及优化策略,帮助开发者提升性能、避免内存泄漏,本文给大家介绍Java内存分配与JVM参数详解,... 目录引言JVM内存结构JVM参数概述堆内存分配年轻代与老年代调整堆内存大小调整年轻代与老年代比例元空

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素