• 幕客老师召集小伙伴
  • 运维高手36项修炼
  • python自动化运维项目实战
  • nginx从入门到实战
  • 阿里云与Centos7实战

用jmap分析线上java应用程序内存溢出情况

笔者用的ubuntu的机器演示,java应用程序最容易出现的问题就是内存溢出,发现内存运行沾满了整个系统的内存,如下:

# free  -m

             total       used       free     shared    buffers     cached

Mem:          7983       6967       1016          0        129        701

-/+ buffers/cache:       6137       1846

Swap:         4095        999       3096

2、linux下 通过top可以分析出哪个几个应用程序占用,如果是java的应用,我们可以通过opensdk自带的jmap来分析

这个应用程序中哪个类拥有多少个实例以及一共占用的内存。

jmap -histo 28263(PID) >jmap.log

查看文件结果如下:

 num     #instances         #bytes  class name

----------------------------------------------

   1:       3661467      364269088  [C

   2:       3133070       75193680  java.lang.String

   3:        233556       70809080  [B

   4:        217517       32436744  <constMethodKlass>

   5:        217517       27856016  <methodKlass>

   6:        429872       24072832  org.springframework.asm.Item

   7:         16767       22102936  <constantPoolKlass>

   8:        305478       19550592  org.springframework.asm.Label

   9:        305680       18587112  [Ljava.lang.Object;

  10:        114220       18275200  com.xfireit.wechat.platform.shop.entity.Storefront

  11:        274732       18254648  [I

  12:        752157       18051768  org.springframework.asm.Edge

  13:        268278       17169792  org.hibernate.collection.internal.PersistentSet

  14:         14231       13574432  <constantPoolCacheKlass>

  15:        409006       13088192  java.util.HashMap$Entry

  16:         16767       12498352  <instanceKlassKlass>

  17:        119251       10396728  [Ljava.util.HashMap$Entry;

  18:         43226        8645200  org.springframework.asm.MethodWriter

  19:         89316        7145280  java.lang.reflect.Method

  20:        137687        5507480  java.util.LinkedHashMap$Entry

  21:         12274        4990432  [J

  22:          8262        4747936  <methodDataKlass>

  23:         55284        4422720  java.util.jar.JarFile$JarFileEntry

  24:        132251        4232032  java.lang.ref.WeakReference

  25:        125367        4011744  java.sql.Timestamp

  26:        155689        3899800  [Ljava.lang.String;

  27:         66207        3177936  java.util.HashMap

 

 

用jmap分析线上java应用程序内存溢出情况

Pingbacks已打开。

引用地址

暂无评论

发表评论