您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > JAVA

java服务宕机原因查询

时间:2019-10-25 16:27:20  来源:  作者:

JAVA服务项目上线之后经常会出现宕机的情况

常见原因

内存溢出

1.查到服务进程号

[root@wms ~]# ps -ef|grep java
root 6399 6069 0 08:57 pts/2 00:00:00 grep --color=auto java
root 25374 1 0 Oct17 ? 00:21:19 /usr/local/jdk/jre/bin/java -Djava.util.logging.config.file=/home/Tomcat-wmsweb/conf/logging.properties -Djava.util.logging.manager=org.Apache.juli.ClassLoaderLogManager -Xms3072m -Xmx3072m -Xss512K -XX:PermSize=256m -XX:MaxPermSize=512m -Djdk.tls.ephemeralDHKeySize=2048 -Djava.endorsed.dirs=/home/tomcat-wmsweb/endorsed -classpath /home/tomcat-wmsweb/bin/bootstrap.jar:/home/tomcat-wmsweb/bin/tomcat-juli.jar -Dcatalina.base=/home/tomcat-wmsweb -Dcatalina.home=/home/tomcat-wmsweb -Djava.io.tmpdir=/home/tomcat-wmsweb/temp org.apache.catalina.startup.Bootstrap start
root 25401 1 2 Oct17 ? 03:14:13 /usr/local/jdk/jre/bin/java -Djava.util.logging.config.file=/home/tomcat-wms/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xms3000m -Xmx3000m -Xss512K -XX:PermSize=256m -XX:MaxPermSize=512m -XX:-UseGCOverheadLimit -Djdk.tls.ephemeralDHKeySize=2048 -Djava.endorsed.dirs=/home/tomcat-wms/endorsed -classpath /home/tomcat-wms/bin/bootstrap.jar:/home/tomcat-wms/bin/tomcat-juli.jar -Dcatalina.base=/home/tomcat-wms -Dcatalina.home=/home/tomcat-wms -Djava.io.tmpdir=/home/tomcat-wms/temp org.apache.catalina.startup.Bootstrap start
[root@wms ~]# 

2.查看内存使用情况

[root@wms ~]# jmap -heap 25401
Attaching to process ID 25401, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.211-b12
using thread-local object allocation.
Parallel GC with 4 thread(s)
Heap Configuration:
 MinHeapFreeRatio = 0
 MaxHeapFreeRatio = 100
 MaxHeapSize = 3145728000 (3000.0MB)
 NewSize = 1048576000 (1000.0MB)
 MaxNewSize = 1048576000 (1000.0MB)
 OldSize = 2097152000 (2000.0MB)
 NewRatio = 2
 SurvivorRatio = 8
 MetaspaceSize = 21807104 (20.796875MB)
 CompressedClassSpaceSize = 1073741824 (1024.0MB)
 MaxMetaspaceSize = 17592186044415 MB
 G1HeapRegionSize = 0 (0.0MB)
Heap Usage:
PS Young Generation
Eden Space:
 capacity = 607649792 (579.5MB)
 used = 607649792 (579.5MB)
 free = 0 (0.0MB)
 100.0% used
From Space:
 capacity = 213385216 (203.5MB)
 used = 0 (0.0MB)
 free = 213385216 (203.5MB)
 0.0% used
To Space:
 capacity = 201326592 (192.0MB)
 used = 0 (0.0MB)
 free = 201326592 (192.0MB)
 0.0% used
PS Old Generation
 capacity = 2097152000 (2000.0MB)
 used = 2097149664 (1999.9977722167969MB)
 free = 2336 (0.002227783203125MB)
 99.99988861083985% used
121339 interned Strings occupying 10592008 bytes.

发现 Eden Space 100.0% used

PS Old Generation 100.0% used

确认为内存溢出

jmm内存模型

java服务宕机原因查询

 

接下来我们需要查看到底是那个大对象造成的这个问题

由于堆内对象信息太多,因此需要输出到问题中查看

[root@wms ~]# jmap -histo:live 25401 >aaa.log

查看大对象信息

[root@wms ~]# vim aaa.log
 num #instances #bytes class name
----------------------------------------------
 1: 23798913 925276392 [C
 2: 23791642 570999408 java.lang.String
 3: 879806 201469128 [Ljava.lang.Object;
 4: 717239 189351096 com.demo.inventory.query.GetTaskCountQueryItem
 5: 5247003 125928072 java.lang.Double
 6: 932106 82025328 java.lang.reflect.Method
 7: 2144995 68639840 java.util.HashMap$Node
 8: 1457567 46642144 java.sql.Timestamp
 9: 725212 40611872 org.hibernate.engine.EntityEntry
 10: 725213 34810224 org.hibernate.engine.EntityKey
 11: 180443 26468992 [Ljava.util.HashMap$Node;
 12: 549431 26372688 org.aspectj.weaver.reflect.ShadowMatchImpl
 13: 655720 26228800 java.util.LinkedHashMap$Entry
 14: 239773 25712128 java.lang.Class
 15: 780484 24975488 org.apache.commons.collections.SequencedHashMap$Entry
 16: 1535589 24569424 java.lang.Integer
 17: 656230 20999360 java.util.concurrent.ConcurrentHashMap$Node
 18: 869529 20868696 java.util.ArrayList
 19: 822486 20851440 [Ljava.lang.String;
 20: 66016 19964336 [B
 21: 549431 17581792 org.aspectj.weaver.patterns.ExposedState
 22: 705540 15311776 [Z
 23: 549431 11702568 [Lorg.aspectj.weaver.ast.Var;
 24: 725212 11603392 org.hibernate.util.IdentityMap$IdentityKey
 25: 158941 8900696 java.util.LinkedHashMap
 26: 324828 7247936 [I
 27: 162778 6511120 java.lang.ref.SoftReference
 28: 476 6288080 [Ljava.util.concurrent.ConcurrentHashMap$Node;
 29: 110595 5308560 java.util.HashMap
 30: 155487 4975584 java.lang.ref.WeakReference
 31: 16090 3732880 com.demo.inventory.query.WmInvLotLocTraceIdQueryItem
 32: 163337 3313312 [Ljava.lang.Class;
 33: 41098 3287840 java.lang.reflect.Constructor
 34: 51249 3279936 org.hibernate.mApping.Column
 35: 81913 3276520 java.util.WeakHashMap$Entry
 36: 35571 3047840 [[Ljava.lang.String;
 37: 51247 2869832 org.hibernate.mapping.Property
 38: 51249 2459952 org.hibernate.mapping.SimpleValue
 39: 49720 1988800 org.hibernate.annotations.common.reflection.java.JavaXProperty
 40: 48352 1934080 org.hibernate.tuple.StandardProperty
 41: 78677 1888248 java.beans.MethodRef
 42: 33011 1848616 java.beans.MethodDescriptor
 43: 28059 1795776 java.net.URL
 44: 49694 1590208 org.hibernate.annotations.common.reflection.java.JavaXSimpleType

最后确认为

com.demo.inventory.query.GetTaskCountQueryItem 对象导致了系统宕机,需要在程序中优化

————————————————

版权声明:本文为CSDN博主「可爱帅」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_43159039/article/details/102676161



Tags:java 服务宕机   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
在java服务项目上线之后经常会出现宕机的情况常见原因内存溢出1.查到服务进程号[root@wms ~]# ps -ef|grep javaroot 6399 6069 0 08:57 pts/2 00:00:00 grep --color=auto...【详细内容】
2019-10-25  Tags: java 服务宕机  点击:(191)  评论:(0)  加入收藏
▌简易百科推荐
面向对象的特征之一封装 面向对象的特征之二继承 方法重写(override/overWrite) 方法的重载(overload)和重写(override)的区别: 面向对象特征之三:多态 Instanceof关键字...【详细内容】
2021-12-28  顶顶架构师    Tags:面向对象   点击:(2)  评论:(0)  加入收藏
一、Redis使用过程中一些小的注意点1、不要把Redis当成数据库来使用二、Arrays.asList常见失误需求:把数组转成list集合去处理。方法:Arrays.asList 或者 Java8的stream流式处...【详细内容】
2021-12-27  CF07    Tags:Java   点击:(3)  评论:(0)  加入收藏
文章目录 如何理解面向对象编程? JDK 和 JRE 有什么区别? 如何理解Java中封装,继承、多态特性? 如何理解Java中的字节码对象? 你是如何理解Java中的泛型的? 说说泛型应用...【详细内容】
2021-12-24  Java架构师之路    Tags:JAVA   点击:(5)  评论:(0)  加入收藏
大家好!我是老码农,一个喜欢技术、爱分享的同学,从今天开始和大家持续分享JVM调优方面的经验。JVM调优是个大话题,涉及的知识点很庞大 Java内存模型 垃圾回收机制 各种工具使用 ...【详细内容】
2021-12-23  小码匠和老码农    Tags:JVM调优   点击:(12)  评论:(0)  加入收藏
前言JDBC访问Postgresql的jsonb类型字段当然可以使用Postgresql jdbc驱动中提供的PGobject,但是这样在需要兼容多种数据库的系统开发中显得不那么通用,需要特殊处理。本文介绍...【详细内容】
2021-12-23  dingle    Tags:JDBC   点击:(13)  评论:(0)  加入收藏
Java与Lua相互调用案例比较少,因此项目使用需要做详细的性能测试,本内容只做粗略测试。目前已完成初版Lua-Java调用框架开发,后期有时间准备把框架进行抽象,并开源出来,感兴趣的...【详细内容】
2021-12-23  JAVA小白    Tags:Java   点击:(11)  评论:(0)  加入收藏
Java从版本5开始,在 java.util.concurrent.locks包内给我们提供了除了synchronized关键字以外的几个新的锁功能的实现,ReentrantLock就是其中的一个。但是这并不意味着我们可...【详细内容】
2021-12-17  小西学JAVA    Tags:JAVA并发   点击:(11)  评论:(0)  加入收藏
一、概述final是Java关键字中最常见之一,表示“最终的,不可更改”之意,在Java中也正是这个意思。有final修饰的内容,就会变得与众不同,它们会变成终极存在,其内容成为固定的存在。...【详细内容】
2021-12-15  唯一浩哥    Tags:Java基础   点击:(17)  评论:(0)  加入收藏
1、问题描述关于java中的日志管理logback,去年写过关于logback介绍的文章,这次项目中又优化了下,记录下,希望能帮到需要的朋友。2、解决方案这次其实是碰到了一个问题,一般的情况...【详细内容】
2021-12-15  软件老王    Tags:logback   点击:(19)  评论:(0)  加入收藏
本篇文章我们以AtomicInteger为例子,主要讲解下CAS(Compare And Swap)功能是如何在AtomicInteger中使用的,以及提供CAS功能的Unsafe对象。我们先从一个例子开始吧。假设现在我们...【详细内容】
2021-12-14  小西学JAVA    Tags:JAVA   点击:(22)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条