如何在云端平台上建立 30,000 名用户的网页 MMO游戏环境-3 (OOM Killer 问题)

接续

如何在云端平台上建立 30,000 名用户的网页 MMO游戏环境

如何在云端平台上建立 30,000 名用户的网页 MMO游戏环境-2 (服务器)

用机器人模拟实际大量玩家涌入游戏世界在GCP没有发生记忆体不足,那究竟是什么造成?

该影像来自未接收机器人连接的边缘伺服器。我们使用不同的设定来产生此结果,让我们能够比较相关数据的差异。整体数据显示CPU使用率为28%,网路输入为55K,输出为36K,传入资料包为542个,传出资料包为483个。这代表了我们的测试世界逻辑伺服器和边缘伺服器之间的基本同步开销。

最后,关于我们的逻辑伺服器,我们使用了 4 台搭载第三代 AMD EPYC 2C4T 处理器的伺服器。我们的系统基于可中断的主从丛集架构,所有伺服器在重新启动时都可以恢复其状态。 Master 负责丛集的维护,系统尽可能的将物件分发给 Slaves。因此,Master 的 CPU 使用率明显低于其他伺服器。但是如果需要的话,添加新的Slave伺服器可以实现自动重新平衡,而不会影响运行,从而增加整体的负载。在这种机制下,限制操作的绩效指标从区域密度转变为受因果顺序事件影响的物件数量。这是我们在本次验证中想要测试的主要特性。

如图所示,我们仍然没有解决边缘伺服器上的 OOM Killer 问题。

然而,在分析相关数据后我们发现,在异常期间,边缘伺服器的传入流量突然激增了近2GB。

同时,连接到该边缘伺服器的机器人主机仅有300MB的传出资料。

我们之前使用的云端平台上从未出现过这个问题。

因此我们向云端平台进行了咨询,并做出了如下调整。

将以下设定重新加入到 sysctl.conf:

网路.ipv4.tcp_mem=524288 786432 1572864

网路.ipv4.tcp_rmem=8192 262411 4194304

网路位址:

我们降低了接收缓冲区的最大限制。根据我们的资料观察,接收的资料量应该只在几KB以内。

透过降低接收缓冲区的上限,我们的目标是防止过度异常的记忆体使用。

2.重新启用QPS限制侦测。

最初,我们禁用了机器人连线的 QPS 限制,这导致系统直接从机器人主机接受过多的资料包。

由于机器人主机有 16GB 内存,而边缘伺服器只有 8GB,我们怀疑这种资源不平衡是边缘伺服器在没有限制的情况下被 OOM Killer 杀死的主要原因。

3.暂时将边缘伺服器的记忆体增加到16GB。

透过将边缘伺服器的记忆体分配与机器人主机相匹配,我们旨在防止资源不平衡。

我们将维护此设置,等待云端平台的响应。

4.调整机器人事件更新机制。

以前,机器人以固定的 100ms 更新间隔运行,

每次更新时间都是根据先前指定的更新时间加上 100 毫秒来安排的。

但是,如果发生事件拥塞,机器人可能会快速连续执行多次,从而增加 CPU 负载。

为了防止这种情况,我们修改了更新机制,并根据实际上次执行时间加上 100 毫秒来安排下一次更新,以确保运行更顺畅。

但,你以为问题解决的时候就是会发生些什么....

马上进来看:

https://demo.mb-funs.com/

ps.  ios手機開網頁跑多人3D可能因為記憶體限制踢掉

回馈与申请代码:https://wj.qq.com/s2/18654558/0558/

如果本文对你有帮助,欢迎点赞/关注获取更多技术解析!

也欢迎留下  开发中遇到问题  或是  应用面向 ?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值