zoukankan      html  css  js  c++  java
  • java服务突然被挂掉,停止服务处理方案

    一、问题背景

      该问题出现在我们测试环境。测试环境部署了很多java应用。

      其中一个数据服务(主要提供订单交易数据聚合查询),用着用着就服务挂掉了也就是进程没有了。

    二、分析过程

      1.了解服务器配置  =====》 4核8G内存

      2.通过 ps -ef|grep java 查看被关掉的应用 当前进程id及PID 和分配的内存大小 =====》 1G =>4G (下图是我处理完后截取的图片所以最大值只是2G)

      3.通过top -p PID 命令实时查看该PID内存使用情况

      4.根据现象发现问题

        发现该java应用的使用内存,只增不减。也就是java垃圾收集器并没有触发。

        原来JAVA虚拟机会一直增加内存占用,一直到你设置的最大内存4096M附近,才会触发垃圾回收机制,内存回收。但是由于服务器部署了很多其他java应用占用了4G左右,无法分配给该应用4G内存。当快达到4G时,导致服务器内存告警而将该进程kill掉

    三、解决方案

      将java虚拟机内存最大值调低到不大于服务器剩余的内存。

      我将服务器内存从4G调到2G就可以了,该应用内存使用一直维持在2G内(快到2G时会触发垃圾回收的),从而不会导致总内存不足导致服务器kill掉进程。

      -Xms1024m -Xmx2048m

        

      

  • 相关阅读:
    python excel导入到数据库
    ubuntu14.04修改mysql默认编码
    python 向MySQL里插入中文数据
    hbase框架原理
    hive框架原理
    Hadoop的MapReduce模型基本原理
    机器学习模型效果评价
    spark架构原理
    Hadoop架构原理
    特征工程
  • 原文地址:https://www.cnblogs.com/756623607-zhang/p/8430203.html
Copyright © 2011-2022 走看看