测者的性能测试手册:谁来接NMT(Native Memory Tracking)内存故障诊断的下一个棒

2019-08-02 15:48:19 浏览数 (1)

内存故障的下一个问题

前面的文章中说道NTM可以追踪到堆内内存、code区域、通过unsafe.allocateMemory和DirectByteBuffer申请的内存。

但是NMT不能跟踪C代码的申请的堆外内存的情况,那么NMT诊断后,下面的事情谁来做呢,那么请看测者今天的笔记内容。

pmap接下下一个接力棒

pmap提供了进程的内存映射,pmap命令用于显示一个或多个进程的内存状态。主要可以监测进程的地址空间和内存的状态。

pmap的语法

代码语言:javascript复制
pmap -option pid

其中option如下:

代码语言:javascript复制
-x:显示扩展格式
-d:显示设备格式
-q:不显示头尾行
-V:显示指定版本

用法举例

代码语言:javascript复制
[root@locaohost~]#pmap -x 7877

Address           Kbytes     RSS   Dirty Mode  Mapping
00000000020e0000    4008    4008    4008 rw---   [ anon ]
00007f789ec2d000    1668    1384       0 r-x-- libc-2.19.so
00007f7884000000     148      92      92 rw---   [ anon ]
00007f787c000000     132      24      24 rw---   [ anon ]
00007f789efce000      16      16      16 r---- libc-2.19.so
00007f7880000000     132      12      12 rw---   [ anon ]
00007f789efd2000       8       8       8 rw--- libc-2.19.so
00007f789edce000    2048       0       0 ----- libc-2.19.so
00007f787c021000   65404       0       0 -----   [ anon ]
00007f7880021000   65404       0       0 -----   [ anon ]
00007f7884025000   65388       0       0 -----   [ anon ]

其中: Address: 内存分配地址 Kbytes: 实际分配的内存大小 RSS: 程序实际占用的内存大小

Mapping: 分配该内存的模块的名称

0 人点赞