• 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

        

      

  • 相关阅读:
    安装触动精灵
    云集微助手安装教程和授权说明old
    造粉神器下载地址
    兵工厂安装和使用教程
    云集微助手-操作简介
    转:二叉树的深度优先遍历和广度优先遍历
    转:背包问题的解法
    Moco搭建测试服务器
    Jmeter的内嵌函数和变量
    Jmeter输出HTML的性能测试报告
  • 原文地址:https://www.cnblogs.com/756623607-zhang/p/8430203.html
Copyright © 2020-2023  润新知