- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章jvm信息jmap使用的基本方法教程由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
前言 。
大家都知道有很多开源的监控工具,本次只使用了jmap,了解简单使用,谢谢,下面话不多说了,来一起看看详细的介绍吧 。
使用方法如下:
开始了,922是我的tomcat进程 。
帮助命令查看,有哪些命令可以使用.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
[root
@bogon
/]# jmap -help
usage:
jmap [option] <pid>
(to connect to running process)
jmap [option] <executable <core>
(to connect to a core file)
jmap [option] [server_id@]<remote server ip or hostname>
(to connect to remote debug server)
where <option> is one of:
<none> to print same info as solaris pmap
-heap to print java heap summary
-histo[:live] to print histogram of java object heap;
if
the
"live"
suboption is specified, only count live objects
-clstats to print
class
loader statistics
-finalizerinfo to print information on objects awaiting finalization
-dump:<dump-options> to dump java heap in hprof binary format
dump-options:
live dump only live objects;
if
not specified,
all objects in the heap are dumped.
format=b binary format
file=<file> dump heap to <file>
example: jmap -dump:live,format=b,file=heap.bin <pid>
-f force. use with -dump:<dump-options> <pid> or -histo
to force a heap dump or histogram when <pid> does not
respond. the
"live"
suboption is not supported
in
this
mode.
-h | -help to print
this
help message
-j<flag> to pass <flag> directly to the runtime system
|
使用1:jmap pid 查看基本信息 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
[root
@bogon
/]# jmap
922
attaching to process id
922
, please wait...
debugger attached successfully.
server compiler detected.
jvm version is
25.111
-b14
0x0000000000400000
7k /usr/local/software/java/bin/java
0x0000003ddde00000
153k /lib64/ld-
2.12
.so
0x0000003dde200000
22k /lib64/libdl-
2.12
.so
0x0000003dde600000
1881k /lib64/libc-
2.12
.so
0x0000003ddea00000
142k /lib64/libpthread-
2.12
.so
0x0000003ddee00000
45k /lib64/librt-
2.12
.so
0x0000003ddf200000
585k /lib64/libm-
2.12
.so
0x0000003de0e00000
111k /lib64/libresolv-
2.12
.so
0x0000003de9e00000
91k /lib64/libgcc_s-
4.4
.
7
-
20120601
.so.
1
0x00007f90de586000
26k /lib64/libnss_dns-
2.12
.so
0x00007f913c39d000
250k /usr/local/software/java/jre/lib/amd64/libsunec.so
0x00007f913cbf2000
90k /usr/local/software/java/jre/lib/amd64/libnio.so
0x00007f913d103000
113k /usr/local/software/java/jre/lib/amd64/libnet.so
0x00007f913d31a000
49k /usr/local/software/java/jre/lib/amd64/libmanagement.so
0x00007f919a43b000
121k /usr/local/software/java/jre/lib/amd64/libzip.so
0x00007f919a656000
64k /lib64/libnss_files-
2.12
.so
0x00007f919a874000
220k /usr/local/software/java/jre/lib/amd64/libjava.so
0x00007f919aaa0000
64k /usr/local/software/java/jre/lib/amd64/libverify.so
0x00007f919acef000
16584k /usr/local/software/java/jre/lib/amd64/server/libjvm.so
0x00007f919bce2000
100k /usr/local/software/java/lib/amd64/jli/libjli.so
|
使用2 :查看堆信息,jmap -heap pid 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
[root
@bogon
/]# jmap -heap
922
attaching to process id
922
, please wait...
debugger attached successfully.
server compiler detected.
jvm version is
25.111
-b14
using parallel threads in the
new
generation.
using thread-local object allocation.
concurrent mark-sweep gc
heap configuration:
minheapfreeratio =
40
maxheapfreeratio =
70
maxheapsize =
4294967296
(
4096
.0mb) 最大堆大小
newsize =
3221225472
(
3072
.0mb) 新生代大小
maxnewsize =
3221225472
(
3072
.0mb) 最大分配新生代内存
oldsize =
1073741824
(
1024
.0mb) 老年代大小
newratio =
2
survivorratio =
8
新生代与老年代的比例
metaspacesize =
21807104
(
20
.796875mb)
compressedclassspacesize =
1073741824
(
1024
.0mb)
maxmetaspacesize =
17592186044415
mb
g1heapregionsize =
0
(
0
.0mb)
heap usage: 堆的使用情况
new
generation (eden +
1
survivor space): 新生代
capacity =
2899116032
(
2764
.8125mb)
used =
384206560
(
366
.4079284667969mb)
free =
2514909472
(
2398
.404571533203mb)
13.25254166301682
% used
eden space: 新生代 eden区空间
capacity =
2577006592
(
2457
.625mb)
used =
378654344
(
361
.11292266845703mb)
free =
2198352248
(
2096
.512077331543mb)
14.693572968555294
% used
from space:
2
个survivor区域 其中一个就是这个from区
capacity =
322109440
(
307
.1875mb)
used =
5552216
(
5
.295005798339844mb)
free =
316557224
(
301
.89249420166016mb)
1.723704837709817
% used
to space:
2
个survivor区域 其中一个就是这个to区
capacity =
322109440
(
307
.1875mb)
used =
0
(
0
.0mb)
free =
322109440
(
307
.1875mb)
0.0
% used
concurrent mark-sweep generation: 老年代 eden区空间
capacity =
1073741824
(
1024
.0mb)
used =
846734040
(
807
.5085067749023mb)
free =
227007784
(
216
.49149322509766mb)
78.85825261473656
% used
|
使用3:jmap -histo pid 查看一些class的使用情况, 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
jmap -histo
922
由于里面比较多内容,所以放弃了,可以自己使用一下,如果电脑展示不了一屏呢,可以这样。
jmap -histo
922
>dump.txt 导出文件,可以自己看了
下面是我自己导出的文件信息
num #instances(实例数量) #bytes(字节)
class
name
----------------------------------------------
1
:
174069
1579369600
[c
2
:
4403
122732640
[i
3
:
9571
16889072
[b
4
:
157680
3784320
java.lang.string
5
:
38279
3674784
java.util.jar.jarfile$jarfileentry
6
:
70982
2271424
java.util.hashmap$node
7
:
13235
1164680
java.lang.reflect.method
8
:
6001
1028952
[ljava.util.hashmap$node;
又或者可以过滤信息,命令:jmap -histo
922
|grep dubbo 过滤一下,就过滤你想要的信息
|
使用4:jmap -histo:live pid >dump.txt 。
这个和使用3差不多,都是在统计,只不过这个是在统计正在使用的对象,然后dump对象信息.
这种命令都是结合其它的命令一起使用的,以后会有文章结合一起分析,同学有什么好的工具也分享出来,一起学习,本篇只介绍jmap 。
总结 。
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我的支持.
原文链接:http://blog.51cto.com/shangdc/2151219 。
最后此篇关于jvm信息jmap使用的基本方法教程的文章就讲到这里了,如果你想了解更多关于jvm信息jmap使用的基本方法教程的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我有一行“sun.tools.jmap.JMap.main(args);”在我的代码中。 Eclipse 给出错误,指出该类未识别。所以,我尝试下载 sun.tools jar。但我到处都找不到这个
最近我遇到了一个GC问题,我使用jmap来转储堆。但不幸的是它没有正常工作; 我在转储之前运行 jmap -histo 3916|more ,结果是 num #instances
我的要求是使用 Jmap 创建远程服务器堆内存的转储文件。我是这样做的。 jmap -dump:file=remoteDump.txt,format=b 3104 这很好用,因为 3104 是我本地机
我已经在那里做了一些搜索,但找不到太多真正有用的信息,但是有人可以尝试解释 Java 内存映射的基础知识吗?比如在哪里/如何使用它,它的目的,也许还有一些语法示例(输入/输出类型)?我很快就要参加 J
我使用 jmap 转储使用 CMS GC 的应用程序的 Activity 堆: jmap -dump:live,format=b,file=heap.hprof 我用 YourKit 打开这个转储,
jmap 堆转储格式是否有任何开放规范? 感谢您的帮助! 最佳答案 如果你需要堆的直方图,你可以使用jmap -histo 从实时 JVM 获取直方图。如果您已经有了堆转储文件,请使用 Eclipse
我们在生产环境中运行了 Java 流媒体服务器,它需要大约 10GB 的 RAM 才能运行,因此我们安装了 32GB。逐渐增加内存,直到达到限制并弹出内存不足的异常。 我很难确定随着时间的推移积累了哪
当我运行下面的 jmap 命令时: jmap -histo 14104 我能够看到我的对象的非常好的输出,有实例,使用的字节数。 num #instances #bytes
我们有一个应用程序的公开测试版,它偶尔会导致堆空间溢出。 JVM 的 react 是永久休假。 为了分析这一点,我想看看内存失败的地方。 Java 不希望我这样做。该进程仍在内存中,但似乎没有被识别为
我正在探索构建一个集中托管的电子邮件客户端的可能性,该客户端嵌入在我的网站中。用户将从我那里获得一个新的电子邮件地址,他们没有使用他们现有的电子邮件。本质上,我正在寻找作为一组 RESTful API
当我使用 进行堆转储时,出现以下异常 jmap -F -dump:format=b,file=/tmp/heapdump/before.hprof 10737 Attaching to process
我正在使用 jmapping 插件在谷歌地图中显示地点。如何更改所有图标的默认图标,我阅读了 GM Api 文档,但我不明白该怎么做? 谢谢!PS 我本地没有任何代码。 最佳答案 今天也遇到同样的问题
我正在使用java版本“1.6.0_31”(我知道旧版本)。我正在使用 jmap -heap 来查看进程的 permgen 使用情况。但是,当我查看输出时,我看到这些行,它们似乎告诉我当前的 Perm
当我使用 进行 heapdump 时出现以下异常 jmap -F -dump:format=b,file=/tmp/heapdump/before.hprof 10737 Attaching to p
我试图在我的 CentOS 服务器上使用 jmap 命令,但它一直告诉我找不到该命令,即使我已经安装了 JDK。 这是命令 java -version 的输出: java version "1.7.0
我想从受监控的应用程序内部以编程方式获取与 jmap -histo 的输出等效的内容。我看到可以通过 HotSpot 诊断 bean 触发堆转储,但我看不到如何获取直方图数据。有可能吗? 最佳答案 它
我想知道某个时间 Java 进程使用的总堆大小是多少,我必须使用 jmap . jmap -heap 的输出给了我这样的东西: Attaching to process ID 2899, pleas
我不得不跑 jmap为了对我的进程进行堆转储。但是 jvm返回: Unable to open socket file: target process not responding or Ho
1. 使用背景 在前面jstat命令的介绍中,我们知道了可以用它来轻松的了解到线上系统中JVM的各种运行情况和指标。 但是如果有时候发现jvm中新增对象的速度很快,想要知道是什么对象新增这么快;或
我们知道 jmap -histo:live 会触发完整的 gc 以确定事件对象: Does jmap force garbage collection when the live option is
我是一名优秀的程序员,十分优秀!