一些报错的记录

背景

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

 

 

问题1:

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 起一下吧。害。

 

 

 

问题2:telnet 安装了没有反应

服务器上没有 telnet 指令,然后使用指令安装:  yum install telnet ;  yum install telnet-server; 安装完,提示成功,再执行 telnet ip port, 还是提示没有telnet 指令!

啊这。。。。无解之时,因为CRT太卡(总是光标退出了,感觉这是电脑或CRT的一个bug,就是长时间不用,但session 没有断开),就退出,再重新找开。发现。。。好了。淦。

 

 

 

问题3: xx不在sudoer文件中

先用 root 用户去登录,然后, vim /etc/sudoers

找到这一行

 root    ALL=(ALL:ALL) ALL 

 

在下面添加你自己的账号,后面部分和root一样即可。

比如改完之后的样子是:

root    ALL=(ALL:ALL) ALL 
myuser    ALL=(ALL:ALL) ALL 

 

保存退回,就好啦!

 

 

unable to prepare context: path “.\r“ not found

执行sh 脚本的时候,报标题错误

原因是 脚本是在Windows上编辑,然后上传到Linux上执行。好像是2个系统编码不一样导致的

vim 打开脚本 进入命令行 输入 set ff=unix 再保存退出即可

 

vim xx.sh

然后输入一个 “:set ff=unix”  然后回车,这个时候,是看不到任何区别的。

再输入 :wq 保存退出即可。

 

posted @ 2022-03-02 19:51  aaacarrot  阅读(60)  评论(0编辑  收藏  举报