0

最近我的进程开始因内存不足异常而随机死亡。此外,打印这些进程的重启脚本: ./start.sh: 4: ./start.sh: Cannot fork

脚本如下所示:

#!/bin/sh

#EU1
while :
do

if ! screen -list | grep -q "eu1"; then
echo EU1 ist down, Patch eingeleitet!
cd MysticRunes/EU1
./patch.sh
echo EU1 Patch ausgeführt!
screen -dmS eu1 java -Xms6000M -Xmx6000M -jar spigot.jar nogui
echo EU1 neugstartet!
cd ../..
fi

#MRDev
if ! screen -list | grep -q "mrdev"; then
echo MRDev ist down, restart eingeleitet!
cd MysticRunes/Developer
screen -dmS mrdev java -Xms4000M -Xmx4000M -jar spigot.jar nogui
echo MRDev neugstartet.
cd ../..
fi

sleep 1
done

free -m 显示了这一点:

             total       used       free     shared    buffers     cached
Mem:         32125      29902       2222          0       1386      17873
-/+ buffers/cache:      10642      21483
Swap:        16375          0      16375

htop 显示了这一点: htop 截图

我真的不知道这里有什么问题。我已经查看了正在使用的内存问题,并且我的内存被使用了这么多,因为它只是缓存东西,当服务器需要更多内存时,分配给缓存的内存应该是空闲的。HTOP 一遍又一遍地显示相同的进程可能只是服务器正在运行的线程数量吧?那么基本上所有进程内存使用率为 8.7% 的条目也可以合并为总共 8.7% 吗?

也许我只是弄错了,所以请纠正和/或帮助我。

真诚的,贾劳

4

1 回答 1

1

解决方案是有一个线程池不断创建线程,从而导致在某个时候达到最大线程数。感谢您的帮助。

于 2017-03-21T23:56:16.823 回答