文档章节

服务器引擎稳定性测试

ProudNet
 ProudNet
发布于 2016/07/25 15:47
字数 897
阅读 272
收藏 2

服务器引擎稳定性测试

服务器引擎对缺陷比较敏感,为了确保服务器引擎的稳定性要进行广泛的测试。测试的时候我们构建了各种网络环境,也用到了各种网络路由器和虚拟设备。

我们自己开发的分布式单元测试程序可以同时进行多种测试案例。

                           使用Proudnet的FPS 游戏 S4 联盟

智能手机、无线网络 

与PC 网络游戏开发不同的是要实现智能手机和PC之间的multi play。在智能手机上实现multi play就要找到和解决无线网络现有的问题。 

Wifi网络状态很好时PC网络游戏的网络状态差距并不大。只是偶尔会发生100毫秒以上的latency及网络延迟。

                               

Wifi 网络状态不好时延迟也会变大,甚至也会达到500毫秒,严重时也会有15%以上的丢包率。

                               

智能手机离开Wifi zone就会连接3G或4G网络,切换的时候数据通讯会断开10秒左右。

                          

相比PC网络游戏,智能手机网络游戏的网络环境更差,不仅时延大丢包可能性也会更高。

丢包率高时TCP也会出现重复传输引起的时延,数据往返时延RTT越高时延越大,这个时延就称为RTO。 

一般RTO会比RTT大很多。

就因为这些特点,实时多人网络游戏中人物的移动消息或机关枪散射等消息的传输UDP比TCP更适合。 

但也不是所有网络环境都能用UDP。公司的防火墙设备和、部分Wifi、3G、4G基站就不支持UDP。此时就要用TCP来替代UDP。

               

并不是所有移动网络通讯中P2P holepunching都能成功,韩国的移动网络通讯中P2P holepunching的成功率能达56%,这就意味着剩下的会使用P2P relay。  

移动网络中最重要的是当离开Wifi覆盖区域时的处理方式。离开Wifi区域时实时多人网络游戏中TCP连接会断开。有些手机会在Wifi转3G或4G的瞬间断开连接,有些也会在过数十秒后断开连接。重新建立连接之前的通讯数据包就会丢失。  

同样,这问题我们也找到了解决办法。离开Wifi区域切换至3G或4G的期间发生的通讯数据我们会保存在内存中。切换成功后会重新发送这些数据包。从游戏开发者层面只是暂时无法收发数据,连接还是正常的。

尚未结束的挑战

游戏市场变化不断,流行的游戏液也在持续迭代,而且用户的游戏设备种类和服务器开发方法论也在不断变化。所以游戏服务器也要随着这些变化而更新。 

Proudnet也会继续变化升级,请继续关注。

                               使用Proudnet的MMORPG ‘颓废之心’

链接一: ProudNet上市后问题的发生和解决的攻防战

链接二: MMO 游戏中使用多核

链接三:服务器引擎稳定性测试

© 著作权归作者所有

共有 人打赏支持
ProudNet
粉丝 11
博文 9
码字总数 9624
作品 0
其它
私信 提问
一款高性能游戏服务器引擎的介绍ProudNet

ProudNet是一款游戏开发所需的服务器引擎。对于实时游戏处理通信量大和同时登录用户数多的问题,是在不同网络环境下能够保持其特有稳定性的高性能引擎。 通过视频教程l详细了解ProudNet游戏服...

ProudNet
2016/05/13
1K
1
Drizzle 7.2.3 发布,精简的 MySQL 分支

Drizzle 7.2.3 发布,该版本修复了 Ctrl+Z 的关闭问题,更新了 JSON 服务器,改进对 Catalog 的支持,更新了 ZeroMQ 和 Gearman 的支持,更新 AUTH_HTTP 认证模块,更新了文档,更新了测试框...

oschina
2012/08/03
1K
2
VS Code Python 插件 8 月更新,带来 ptvsd 4 稳定版

那边 VS Code 1.27 才刚出,这边 Python Extension for Visual Studio Code 的 8 月更新也出来了。 Python Extension for Visual Studio Code 是 Visual Studio Code 的 Python 插件,它简单......

h4cd
2018/09/07
3.4K
3
【ProudNet】服务器引擎之艰难困苦的开发历程

摘要:游戏服务器开发,那些棘手的问题,是如何得到解决的? ProudNet 基于长时间技术积累和众多成功游戏产品和中国及全球范围运营经验 适用于各种复杂网络环境和多种游戏类型,简单易用即使...

ProudNet
2016/07/25
3.8K
9
InfluxDB 0.10.0 发布,时序事件和指标数据库

InfluxDB 0.10.0 发布了,这是一个全新的版本,该版本使用 TSM 存储引擎。该版本大幅提升了稳定性、性能和压缩率。这是 InfluxDB 史上最重要也是最大的版本发布。 在 TSM 存储引擎的帮助下,...

oschina
2016/02/05
2.2K
4

没有更多内容

加载失败,请刷新页面

加载更多

android 延长Toast的时长

示例:myToast(5000,"hello"); public void myToast(int showTime, String msg) { Toast hello = Toast.makeText(getActivity(), msg, Toast.LENGTH_SHORT); new CountDownTimer(......

雨焰
昨天
1
0
浅谈mybatis的日志适配模式

Java开发中经常用到的日志框架有很多,Log4j、Log4j2、slf4j等等,Mybatis定义了一套统一的日志接口供上层使用,并为上述常用的日志框架提供了相应的适配器。有关适配器模式例子可以参考 设计...

算法之名
昨天
6
0
大数据教程(13.6)sqoop使用教程

上一章节,介绍了sqoop数据迁移工具安装以及简单导入实例的相关知识;本篇博客,博主将继续为小伙伴们分享sqoop的使用。 一、sqoop数据导入 (1)、导入关系表到HIVE ./sqoop import --connect...

em_aaron
昨天
2
0
Git cherry-pick 使用总结

应用背景:假设现在有两个分支:dev_01, dev_02. 如果我想把dev_01分支上的某几个commit合并到dev_02分支, 那么怎么办呢? 这就是cherry-pick的工作了。cherry-pick会捡选某些commit, 即把某...

天王盖地虎626
昨天
9
0
css动态设置宽高

css 中可以使用 calc() 来动态设置宽高,但是,在表达式中运算符的前后必须要有空格 height:calc(100vh - 80px)

林梓阳
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部