百木园-与人分享,
就是让自己快乐。

一些报错的记录

背景

经常遇到一些关于 linux 服务器相关的报错,也挺有意思,记录之

 

 

 

there is insufficient memory for the java runtime

问题发生:这是怎样发生的呢,在一个服务器上,把一个服务停掉了(服务本来是用 root 起的)。停掉后,因为不想用root做这样的操作,于是切换到了普通用户,再去起这个服务。

就报了这个错,乍一看,应该是内存不够,但看了一下物理内存,是妥妥的足够的,这就奇怪了。怎么回事呢?知识盲区。

 

然后网上查了一下,其实是查到了结果的。此暂时不说。

 

先说解决方案,

因为刚才服务还在运行中,所以,这个服务肯定是没问题的,资源也肯定是可以的,所以问题出现在哪里呢? 做了什么操作?——切换了一个账号!

是的,就是因为切换了一个账号,服务才起不来的,换回 root, 服务果然就能够起来了。所以,两个账号之前,什么区别?

 

再看回,那个报错,其实它有说到一个点:

报错文件内容:

查看代码
# There is insufficient memory for the Java Runtime Environment to continue.
# Cannot create GC thread. Out of system resources.
# Possible reasons:
#   The system is out of physical RAM or swap space
#   In 32 bit mode, the process size limit was hit
# Possible solutions:
#   Reduce memory load on the system
#   Increase physical memory or swap space
#   Check if swap backing store is full
#   Use 64 bit Java on a 64 bit OS
#   Decrease Java heap size (-Xmx/-Xms)
#   Decrease number of Java threads
#   Decrease Java thread stack sizes (-Xss)
#   Set larger code cache with -XX:ReservedCodeCacheSize=
# This output file may be truncated or incomplete.
#
#  Out of Memory Error (gcTaskThread.cpp:46), pid=17285, tid=47629249568816
#
# JRE version: 6.0_43-b01
# Java VM: Java HotSpot(TM) 64-Bit Server VM (20.14-b01 mixed mode linux-amd64 compressed oops)

 

问题分析:

可能1:

物理资源不够(不是)

可能2:

系统进程数到达了上限,然后通过指令  ulimit -a 对比 普通用户 与  root 用户间的区别,果然发现了不同

普通用户的 ulimit -a 结果有一个值

max user processes 为 1024

但 root 用户的这个值是 127252  原因就在这里!

找到原因,就好解决了。但线上服务器,不敢轻易修改,就暂且用 root 起一下吧。害。


来源:https://www.cnblogs.com/aaacarrot/p/15956774.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » 一些报错的记录

相关推荐

  • 暂无文章