• 为什么写博客,是因为遇到的坑,不希望别人在踩一遍!
  • 选择了,剩下的就是坚持和努力-------致自己!
  • 当能力达不到梦想时,更需要学习,努力,拼搏

jmap分析tomcat,jar包内存

Linux运维 雪豹 6年前 (2018-04-20) 1099次浏览 0个评论

 

jmap分析tomcat,jar包内存

JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat等小巧的工具,本博客希望能起抛砖引玉之用,让大家能开始对JVM性能调优的常用工具有所了解。 现实企业级Java开发中,有时候我们会碰到下面这些问题:

OutOfMemoryError,内存不足

内存泄露

线程死锁

锁争用(Lock Contention)

Java进程消耗CPU过高

jmap 详解

分析java application的内存使用时,jmap是一个很实用的轻量级工具。使用jmap可以查看heap空间的概要情况,粗略的掌握heap的使用情况。也可以生成heapdump文件,再使用jhat通过web浏览器具体分析内容中的对象和数据。

jmap是JDK自带的一个工具,非常小巧方便,其支持参数如下:

-heap 打印heap空间的概要,这里可以粗略的检验heap空间的使用情况。

以上的输出很简单,第四行起开始输出此进程的JAVA使用的环境

Heap Configuration:指java应用启动时设置的JVM参数。像最大使用内存大小,年老代,年青代,持久代大小等。

Heap Usage:当时的heap实际使用情况。包括新生代、老生代和持久代。

其中新生代包括:Eden区的大小、已使用大小、空闲大小及使用率。Survive区的From和To同样。

有这个可以很简单的查看本进程的内存使用情况。

可以用于分析堆内存分区大小是否合理,新生代和老生代的大小分配是否合适等。

也许进程占用的总内存比较多,但我们在这里可以看到真正用到的并没有多少,很多都是”Free”。内存使用的堆积大多在老年代,内存池露始于此,所以要格外关心“Old Generation”。

[root@qudaodev ~]# jmap -heap 4956
#提示 jmap -heap PID (jar,war,tomcat 的pid)
Attaching to process ID 4956, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.60-b23

using parallel threads in the new generation.
using thread-local object allocation.
Concurrent Mark-Sweep GC

Heap Configuration: 指java应用启动时设置的JVM参数。像最大使用<strong>内存</strong>大小,年老代,年青代,持久代大小等。
   MinHeapFreeRatio         = 40
   MaxHeapFreeRatio         = 70
   MaxHeapSize              = 1073741824 (1024.0MB)
   NewSize                  = 89456640 (85.3125MB)
   MaxNewSize               = 357892096 (341.3125MB)
   OldSize                  = 178978816 (170.6875MB)
   NewRatio                 = 2
   SurvivorRatio            = 8
   MetaspaceSize            = 21807104 (20.796875MB)
   CompressedClassSpaceSize = 1073741824 (1024.0MB)
   MaxMetaspaceSize         = 17592186044415 MB
   G1HeapRegionSize         = 0 (0.0MB)

Heap Usage:  当时的heap实际使用情况。包括新生代、老生代和持久代。
New Generation (Eden + 1 Survivor Space):
   capacity = 80543744 (76.8125MB)
   used     = 34983656 (33.363014221191406MB)
   free     = 45560088 (43.449485778808594MB)
   43.43435537339809% used
Eden Space:
   capacity = 71630848 (68.3125MB)
   used     = 30500632 (29.087669372558594MB)
   free     = 41130216 (39.224830627441406MB)
   42.58030283265668% used
From Space:
   capacity = 8912896 (8.5MB)
   used     = 4483024 (4.2753448486328125MB)
   free     = 4429872 (4.2246551513671875MB)
   50.2981746897978% used
To Space:
   capacity = 8912896 (8.5MB)
   used     = 0 (0.0MB)
   free     = 8912896 (8.5MB)
   0.0% used
concurrent mark-sweep generation:
   capacity = 178978816 (170.6875MB)
   used     = 40374160 (38.50379943847656MB)
   free     = 138604656 (132.18370056152344MB)
   22.558066313278104% used

29200 interned Strings occupying 3331592 bytes.


有需要可以联系微信xuebao19930721和加入微信群
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址