我有一台具有以下特征的服务器:https://www.soyoustart.com/it/offerte/1801sysgame05.xml
处理器 Intel i7-4790K
内存 32GB DDR3 1333MHz
流量无限 包含反 DDoS
磁盘 1x240GB SSD
带宽 250 Mbps
我安装了 Proxmox Linux 发行版,它运行基于 Ubuntu 服务器的容器来处理用 C++ 编写的实时 TCP 游戏服务器,目前在线用户已达 1000 人左右,并且我们很快就会将当前用户数量翻一番。
问题是,一旦在线用户数量达到约 850 人,我们就会遇到奇怪的性能“瓶颈”。一旦它回到约 800 人或更少,瓶颈就会消失。实际情况是,玩家必须等待大约 30 秒才能连接到服务器,而已经连接的玩家没有遇到任何问题(没有延迟、没有冻结等)。这似乎是网络拥塞、上限限制或类似的东西,拒绝进一步连接到同一进程并对我们的 CPU 造成压力(如下面的屏幕截图所示)
这里我从我们的 NetData 收集了一些图表,我注意到了相同的“模式”。软中断 RCU我猜想是特别有意义的,但我不知道它到底意味着什么。
软中断 RCU:
CPU 使用率/压力:
CPU频率
CPU温度
我不认为错误在于我们的 CPU 本身,但如上所述,似乎与进程限制或类似的东西有关。
你知道发生什么事了吗?
更新:
另一张相关图表
答案1
我通过增加 ulimit 解决了这个问题
在我的特定情况下,问题是必须增加 ulimit(硬限制和软限制),并在主机和 lxc 容器的 /etc/ 文件夹内永久配置。
另外,我将我的容器改为特权容器,但我不确定是否真的有必要,可能有办法为特权容器修复它,但我无法做到这一点。