一些报错的记录
背景
经常遇到一些关于 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 保存退出即可。