为何我的线程无法分叉?

为何我的线程无法分叉?

我最近开始租用 VPS,它在 8GB RAM 上运行 Ubuntu Server 18.04.4 LTS。我只用它运行一个小型(SpigotMC)Minecraft 服务器。当服务器的 JRE 未运行时,所有命令都可以完美运行。我通常在 tmux 会话中启动服务器,如下所示:

java -Xms1G -Xmx4G -XX:+UseConcMarkSweepGC -jar spigot-1.15.2.jar

在我断开与会话的连接后,基本 bash 命令和 APT 之类的东西仍然可以工作。但是当我尝试查看任何手册页时:

man: fork failed: Resource temporarily unavailable

偶尔我也能查看手册页,但这种情况很少见。此外,服务器进程本身偶尔也会遇到相关问题。有时在日志中我会收到类似这样的错误

com.mojang.authlib.GameProfile@deadbeef[id=<null>,name=example,properties={},leg
acy=false] (/123.456.789.0:55100) lost connection: Internal Exception: java.lang
.OutOfMemoryError: unable to create native thread: possibly out of memory or pro
cess/resource limits reached

或者

[21:45:15] [Server-Worker-614/WARN]: Server-Worker-614 died
java.lang.OutOfMemoryError: unable to create new native thread

我在日志中找不到它,但有一次我也收到一个错误,直接提到了pthread_create错误代码EAGAIN。最近整个服务器在一次之后崩溃了java.lang.OutOfMemoryError

根据我的研究,这表明服务器内存不足或线程数量已达到上限。但是,崩溃时 RAM 使用量仅为 1 到 2 GB。此外,整个系统始终运行少于 80 个线程(我使用 进行了检查ps -eLF | wc -l)。我还读到过堆栈耗尽的可能性,但我不知道如何确认。我认为这种情况的后果会更加严重。

我特别困惑,因为有些功能似乎apt仍然有效,但man实际上却无效。这可能是 VPS 托管提供商的问题吗?即使服务器处于空闲状态(即没有运行 JRE),SSH 有时也会延迟几秒钟。我束手无策,您知道这个问题的根本原因是什么吗?

编辑:事实证明,我的实例正在 OpenVZ 容器中运行。以下是/proc/user_beancounters

Version: 2.5
       uid  resource                     held              maxheld              barrier                limit              failcnt
   *******: kmemsize                 36102144             40902656  9223372036854775807  9223372036854775807                    0
            lockedpages                     0                    0  9223372036854775807  9223372036854775807                    0
            privvmpages                414235               521970  9223372036854775807  9223372036854775807                    0
            shmpages                      278                 2064  9223372036854775807  9223372036854775807                    0
            dummy                           0                    0  9223372036854775807  9223372036854775807                    0
            numproc                        69                   69                  400                  400                    0
            physpages                  373418              1191913              2097152              2097152                    0
            vmguarpages                     0                    0  9223372036854775807  9223372036854775807                    0
            oomguarpages               374566              1193699                    0                    0                    0
            numtcpsock                      0                    0  9223372036854775807  9223372036854775807                    0
            numflock                        5                   12  9223372036854775807  9223372036854775807                    0
            numpty                          2                    4  9223372036854775807  9223372036854775807                    0
            numsiginfo                      0                  138  9223372036854775807  9223372036854775807                    0
            tcpsndbuf                       0                    0  9223372036854775807  9223372036854775807                    0
            tcprcvbuf                       0                    0  9223372036854775807  9223372036854775807                    0
            othersockbuf                    0                    0  9223372036854775807  9223372036854775807                    0
            dgramrcvbuf                     0                    0  9223372036854775807  9223372036854775807                    0
            numothersock                    0                    0  9223372036854775807  9223372036854775807                    0
            dcachesize               18575360             18673664  9223372036854775807  9223372036854775807                    0
            numfile                       840                 1320  9223372036854775807  9223372036854775807                    0
            dummy                           0                    0  9223372036854775807  9223372036854775807                    0
            dummy                           0                    0  9223372036854775807  9223372036854775807                    0
            dummy                           0                    0  9223372036854775807  9223372036854775807                    0
            numiptent                      44                   44                 2000                 2000                    0

相关内容