linux内存不足导致java进程被kill掉

记得之前在国内现金贷贷超放量时,后台java进程莫名奇妙就没了,

查看 /var/log/message 出现如下日志,标明,Linux 系统自身把 Java 进程杀掉了

Jun 28 02:58:27 hilife-dev001 kernel: Out of memory: Kill process 14561 (java) score 52 or sacrifice child

当 Linux 系统内存不足时,系统会把当前系统占用系统内存过高的进程当做流氓进程,然后系统发出信号将这个流氓进程杀掉,最后导致 Java 应用服务不能使用

解决方法
方法1:通过调整 JVM 参数限制最大可使用内存

-Xmx2g
1
方法2:启用 swap 分区
参考:https://help.aliyun.com/knowledge_detail/42534.html
方法3:增加物理内存或增加机器
方法4:将应用分配到压力较小的服务器上

原文地址:https://www.cnblogs.com/zjhgx/p/12112440.html

时间: 2024-10-11 14:16:32

linux内存不足导致java进程被kill掉的相关文章

死磕内存篇2 --JAVA进程是怎么突然挂掉的

JVM内存不足导致进程死掉. Native memory allocation (mmap) failed to map 一台服务器上部署很多JAVA进程已经是微服务的常态,但也有些坑. 背景,测试服务器上的一些JAVA进程突然挂掉,查看call back的日志发现如下: # There is insufficient memory for the Java Runtime Environment to continue. # Native memory allocation (mmap) fa

Linux内存点滴:用户进程内存空间

原文出处:PerfGeeks 经常使用top命令了解进程信息,其中包括内存方面的信息.命令top帮助文档是这么解释各个字段的.VIRT , Virtual Image (kb)RES, Resident size (kb)SHR, Shared Mem size (kb)%MEM, Memory usage(kb)SWAP, Swapped size (kb)CODE, Code size (kb)DATA, Data+Stack size (kb)nFLT, Page Fault countn

Linux记录-JMX监控JAVA进程

1.下载 下载地址:http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-java-plat-419418.html,下载jmx_remote-1_0_1_03-ri.zip和jmx-1_2-ri.zip. 2.上传jmx-java.zip并解压到$JAVA_HOME/jre/lib/ext下 3.修改xxx.sh加入export JAVA_OPTS="-Dcom.sun.ma

windows和linux中查看端口占用情况并kill掉对应进程

好几次在不同的情况下遇到 需要查看端口信息 并且kill掉对应进程的情况 相关的参数总是记不全 在这里记录下 以后查看方便 windows中查看正在使用端口的信息netstat -ano|findstr "xxxx"kill 掉对应的进程taskkill /f /t /PID 具体参数信息http://blog.163.com/[email protected]/blog/static/45190050200741222590/ linux中查看正在使用的端口的信息sudo netst

Linux ps -ef 排除当前进程(kill当前Tomcat进程)

在Linux 中,我们经常使用"ps -ef|grep tomcat" 查看进程,如下图是我操作的服务器上使用该命令后查看的结果: 可以看到,除了3个紫色的tomcat外,还会有一个该命令的进程. 如果想排除掉那个红色框的当前进程,可以在原来命令后面增加一段参数过滤,如下: ps -ef|grep tomcat|grep -v grep 只所以这样做,是因为我个人有个需求:写一个sh脚本放在tomcat/bin目录下,kill掉当前tomcat的进程. 编写 kill.sh 脚本,并将

mmon进程被kill掉会不会自动启动

数据库为11.2.0.4.0版本的RAC. 两个节点相隔6个小时左右,相继无法自动生成AWR报告.业务正常 1.手动创建快照是OK的. 2.查看alert log和mmon日志. 3.在测试库上kill掉mmon进程,进程无法自动启动. 4.在测试库修改_swrf_mmon_flush参数,mmon进程可以自动起来 alter system set "_swrf_mmon_flush"=false; alter system set "_swrf_mmon_flush&quo

Android bindService 的进程被 kill 掉之后会怎样

今天突发奇想,想知道:Android中,A bindService B之后,如果 A 或者 B 被 kill 掉了会怎么样呢? 1. kill A,毫无疑问应该是: B will not be stopped. 2. kill B,那么会是怎么样呢? A will receive onServiceDisconnected call back. And A will reconnect B ? or A will re-bindService B ? or A will receive onSe

Windows/Linux环境下查看Java进程ID方法

如果启动多个Java程序,因所有Java程序都在JVM中运行,进程管理器会出现多个java.exe,但如何确定某个Java程序与进程中java.exe是对应的呢? 可以使用Java自带的VisualVM工具实现,在Windows的CMD控制台或者Linux终端下执行"jvisualvm"命令进入Java VisualVM工作台. 鼠标双击左侧树形进程列表中某一进程(PID即为进程ID),在弹出窗口右下方点击"系统属性"选项卡,向下拖动滚动条到底部,查看"u

ruby中执行shell命令找到进程并kill掉

shell命令获得进程id的方法有三种: 1. ps -A |grep cmdname| awk '{print $1}' 2. pidof cmdname 3. pgrep cmdname ruby中怎么做呢? ruby中有三种方式执行shell命令: %x: 执行命令并返回执行结果 exec:执行命令并退出. system:执行命令并返回true或false. 所以这里要使用%x来取得返回结果. 比如要killsublime: result = %x[pgrep sublime] %x[su