当前位置: 首页 > news >正文

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

接续上一篇「如何在云端平台上建立 30,000 名用户的网页 MMO游戏环境」,接下来讨论模拟连结上的问题。

最初计划使用35台伺服器来完成这个实验,希望能够有大量的用户连接,以验证真实的连接状况。然而,我们高估了这方面,最终我们只维护了26台核心伺服器以及东京和法兰克福的一台边缘伺服器。


接下来,这些是用来模拟真实连接的机器人伺服器。如图所示,每5分钟,他们收到24GB的数据,但只发送了337MB。这与游戏客户端接收超过传输的典型情况一致。在大规模拥塞实验中,发送和接收资料之间的差异可能高达 8 倍。 CPU 使用率始终维持在 98% 以上。虽然我们的伺服器采用了第三代 AMD EPYC 4C8T 处理器,但我们的机器人程式可能没有得到适当的最佳化,我们仍在寻找有问题的部分。结果,每个伺服器的连线数从最初的 2400 个减少到 1760 个。

接下来,关于边缘伺服器,我们使用了第三代 AMD EPYC 2C4T 处理器。影像显示了接收机器人连接的伺服器的数据。我们控制每个边缘伺服器来处理 2000 个机器人连线。数据方面,每5分钟,每台伺服器接收490MB数据,发送13GB数据。资料包处理数量为每 5 分钟接收 3,000k 个资料包,发送 5,500k 个资料包。 CPU 使用率约为55%。在我们正在进行的测试中,我们计划增加连接数量以验证最大负载。然而在这个过程中,我们遇到了意外中断的问题。

为了优化我们的网路以进行 TCP WebSocket 连接,我们采用了以下设定:

net.core.default_qdisc=fq

net.ipv4.tcp_congestion_control=bbr

网.ipv4.tcp_fastopen=3

net.ipv4.tcp_abort_on_overflow=0

net.ipv4.tcp_notsent_lowat=16384

net.ipv4.tcp_syncookies=1

net.ipv4.tcp_tw_reuse=1

net.ipv4.tcp_timestamps=1

net.ipv4.tcp_fin_timeout=10

net.ipv4.tcp_keepalive_time=600

net.ipv4.tcp_keepalive_probes=3

net.ipv4.tcp_keepalive_intvl=30

net.ipv4.tcp_max_syn_backlog=8192

网.ipv4.tcp_max_tw_buckets=16384

net.ipv4.tcp_window_scaling=1

网.ipv4.tcp_sack=1

网.ipv4.tcp_fack=0

网路.ipv4.tcp_mem=8388608 12582912 16777216

网路.ipv4.tcp_rmem=8192 262411 8388608

网路位址:

net.ipv4.tcp_reordering=5

net.ipv4.tcp_slow_start_after_idle=0

核心.msgmnb=65535

核心.msgmax=65535

net.core.rmem_max=8388608

净.核心.wmem_max=8388608

但是tcp_mem、tcp_rmem 和 tcp_wmem 的设定导致了问题。由于机器人伺服器最初 CPU 超载,资料包无法顺利处理。由于伺服器设定了较大的资料包缓冲区,导致核心记忆体不足,系统以「记忆体不足」错误终止该进程。最终我们删除了这些设置,因为不可以让伺服器受到客户端影响而产生中断。

但奇怪的是,在我们之前对以「G」开头的平台进行的测试中,我们运行了 60,000 个机器人连接,接收 3,000 个连接的边缘伺服器每分钟仅传输了 900 MiB 的数据。相比之下,在这个平台上大约有2,000个连接,数据流量每分钟高达2.5 GB,这显示出明显的差异。
(续)

马上进来看:

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

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

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

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

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

相关文章:

  • 【工业现场总线】控制网络的主要特点是?OSI参考模型的分层是?
  • `chromadb` 是什么
  • hive 数据简介
  • C++通过宏将任何内容转成字符串的方式
  • Git的基本使用
  • linux 添加自定义文件类型,自定义文件图标,自定义类型默认打开应用 启动菜单
  • 强化学习(赵世钰版)-学习笔记(完)(10.Actor-Critic方法)
  • 玩转物联网-4G模块如何快速将数据上传到巴法云(TCP篇)
  • ASP.NET会话攻防战:彻底歼灭会话固定漏洞的六层防御体系
  • Buuctf [极客大挑战 2019]FinalSQL
  • 数仓工具—Hive语法之不同纬度聚合
  • (一)飞行器的姿态欧拉角, 欧拉旋转, 完全数学推导(基于坐标基的变换矩阵).(偏航角,俯仰角,横滚角)
  • 数据结构-----队列
  • QuickAPI:一键将 Excel 数据转为数据库表
  • OpenHarmony子系统开发 - 电池管理(二)
  • 群体智能优化算法-粒子群优化算法(Particle Swarm Optimization, PSO,含Matlab源代码)
  • sql-labs
  • 【零基础入门unity游戏开发——通用篇】Linerenderer线和Trail Renderer拖尾
  • 【新品解读】4 路光纤 4 FMC 扩展,AMD KU 系列 FPGA 开发板 AXKU115 多场景高速通信解决方案
  • Multisim学习-04 示波器的使用
  • 中铁房地产24.7亿元竞得上海松江新城宅地,溢价率20.42%
  • 14岁女生瞒报年龄文身后洗不掉,法院判店铺承担六成责任
  • 习近平同俄罗斯总统普京茶叙
  • 乡村快递取件“跑腿费”屡禁不止?云南元江县公布举报电话
  • 花20万骑自行车?CityRide带火“骑行经济”
  • 习近平向“和平薪火 时代新章——纪念中国人民抗日战争和苏联伟大卫国战争胜利80周年中俄人文交流活动”致贺信