• 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

        

      

  • 相关阅读:
    常用256安全色
    PHP获取中英文混合字符串的字数
    windows 2012 443端口无法访问解决随记!
    SQL提取时间段内数据
    正则表达式匹配
    PclZip library能够压缩与解压缩Zip格式
    安装IIS或证书上服务提示安装程序无法复制文件 ftpsvc2.dl的解决办法
    tomcat
    版本控制gitlab
    rsync
  • 原文地址:https://www.cnblogs.com/756623607-zhang/p/8430203.html
Copyright © 2020-2023  润新知