英文:
Multiple java applications on VPS causes java.lang.OutOfMemoryError:
问题
以下是翻译好的部分:
运行单个应用程序(Minecraft 服务器)时的内存情况
free -m
Total Used Free Shared Buff/Cache Available
Memory: 8192 1934 6103 1 154 6252
Swap: 0 0 0
ulimit
ulimit -s
8192
ulimit 所有限制
ulimit -a
core 文件大小 (blocks, -c) 0
数据段大小 (kbytes, -d) 无限制
调度优先级 (-e) 0
文件大小 (blocks, -f) 无限制
待处理信号 (-i) 1546762
最大锁定内存 (kbytes, -l) 16384
最大内存大小 (kbytes, -m) 无限制
打开的文件数 (-n) 1024
管道大小 (512 bytes, -p) 8
POSIX 消息队列 (bytes, -q) 819200
实时优先级 (-r) 0
栈大小 (kbytes, -s) 8192
CPU 时间 (seconds, -t) 无限制
最大用户进程数 (-u) 62987
虚拟内存 (kbytes, -v) 无限制
文件锁 (-x) 无限制
Java 版本
java -version
openjdk version "11.0.6" 2020-01-14
OpenJDK Runtime Environment (build 11.0.6+10-post-Ubuntu-1ubuntu118.04.1)
OpenJDK 64-Bit Server VM (build 11.0.6+10-post-Ubuntu-1ubuntu118.04.1, mixed mode, sharing)
当我尝试启动额外的 Java 应用程序时
java -jar bot.jar
[0.063s][warning][os,thread] 无法启动线程 - pthread_create 失败 (EAGAIN),属性为:stacksize: 1024k,guardsize: 0k,detached。
错误:发生了 JNI 错误,请检查您的安装并重试
在线程 "main" 中的异常 java.lang.OutOfMemoryError: 无法创建本机线程:可能内存不足或达到进程/资源限制
at java.base/java.lang.Thread.start0(Native Method)
at java.base/java.lang.Thread.start(Thread.java:803)
at java.base/jdk.internal.ref.CleanerImpl.start(CleanerImpl.java:118)
at java.base/java.lang.ref.Cleaner.create(Cleaner.java:203)
at java.base/jdk.internal.ref.CleanerFactory.<clinit>(CleanerFactory.java:42)
at java.base/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:724)
at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:844)
at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:247)
at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:177)
at java.base/java.util.jar.JarFile.<init>(JarFile.java:346)
at java.base/java.util.jar.JarFile.<init>(JarFile.java:317)
at java.base/java.util.jar.JarFile.<init>(JarFile.java:256)
at java.base/sun.launcher.LauncherHelper.getMainClassFromJar(LauncherHelper.java:521)
at java.base/sun.launcher.LauncherHelper.loadMainClass(LauncherHelper.java:747)
at java.base/sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:655)
我已经尝试了很多,我真的不知道该怎么办了。上次我尝试修复这个问题时,我不得不重新安装整个服务器,因为我对所有这些 Linux 的东西都很陌生。
英文:
Memory when I run one application (Minecraft Server)
free -m
Gesamt belegt frei gemns. Puffer/Cache verfügbar
Speicher: 8192 1934 6103 1 154 6252
Auslagerungsspeicher: 0 0 0
ulimit
ulimit -s
8192
ulimit all
ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 1546762
max locked memory (kbytes, -l) 16384
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 62987
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
Java version
java -version
openjdk version "11.0.6" 2020-01-14
OpenJDK Runtime Environment (build 11.0.6+10-post-Ubuntu-1ubuntu118.04.1)
OpenJDK 64-Bit Server VM (build 11.0.6+10-post-Ubuntu-1ubuntu118.04.1, mixed mode, sharing)
When I try to start a additional Java Application
java -jar bot.jar
[0,063s][warning][os,thread] Failed to start thread - pthread_create failed (EAGAIN) for attributes: stacksize: 1024k, guardsize: 0k, detached.
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.OutOfMemoryError: unable to create native thread: possibly out of memory or process/resource limits reached
at java.base/java.lang.Thread.start0(Native Method)
at java.base/java.lang.Thread.start(Thread.java:803)
at java.base/jdk.internal.ref.CleanerImpl.start(CleanerImpl.java:118)
at java.base/java.lang.ref.Cleaner.create(Cleaner.java:203)
at java.base/jdk.internal.ref.CleanerFactory.<clinit>(CleanerFactory.java:42)
at java.base/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:724)
at java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:844)
at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:247)
at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:177)
at java.base/java.util.jar.JarFile.<init>(JarFile.java:346)
at java.base/java.util.jar.JarFile.<init>(JarFile.java:317)
at java.base/java.util.jar.JarFile.<init>(JarFile.java:256)
at java.base/sun.launcher.LauncherHelper.getMainClassFromJar(LauncherHelper.java:521)
at java.base/sun.launcher.LauncherHelper.loadMainClass(LauncherHelper.java:747)
at java.base/sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:655)
I tried so much, I really don't know what to do anymore. Last time I tried to fix that, I had to reinstall my whole Server because I'm new with all that linux stuff
专注分享java语言的经验与见解,让所有开发者获益!
评论