linux基础命令之pmap命令

叶sir学编程 2024-07-10 18:08:09

pmap命令在linux系统中主要用于显示进程内存的相关信息,包括虚拟内存大小,进程访问的地址空间的权限和进程映像的起始地址等信息。pmap命令可以帮助用户分析进程占用内存情况,排查占用内存居高不下的进程,防止系统内存被用光。

命令格式:pmap 参数 进程PID;

参数说明

-d参数:显示进程所访问的设备地址,偏移量等信息,如图,

Address:表示内存的起始地址;

Kbytes Mode:表示占用内存的字节数,单位为KB;

Offset:表示内存的权限,和文件系统的权限类似;

Device:表示设备名;

Mapping:表示占用内存的文件,或所访问的区域,堆栈;

最后一行的mapped参数表示进程映射的虚拟空间的大小;writeable/private表示进程所使用的内存空间的大小,即实际使用的内存,当该值在持续增大时,需要检查程序是否有内存未释放;shared表示当前进程和其他进程共享的内存大小;

图1

-x参数:显示扩展的详细信息,如图,

RSS表示保存的内存大小,单位为KB;

Dirty表示共享和私有的内存大小;

图2

-X参数:显示比-x参数更多的信息,如图:

图3

示例

编写一个简单的程序,使用malloc函数,给一个全局指针不断地分配40*1024个字节的空间,然后不调用free函数,同时在代码里使用pmap命令,实时检测该进程的相关参数,如图,writeable/private参数的值变大了,且使用free函数释放指针,该值也没有变小。

图4

0 阅读:0

叶sir学编程

简介:感谢大家的关注