性能测试必备技能Java应用的内存故障诊断

内存故障的下一个问题

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

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

pmap接下下一个接力棒

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

pmap的语法

pmap -option pid

其中option如下:

-x:显示扩展格式
-d:显示设备格式
-q:不显示头尾行
-V:显示指定版本

用法举例

[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: 分配该内存的模块的名称

本文分享自微信公众号 - V社 北京社(SoftwareTesters)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券