页游服务器压力测试方案
目的:
为保证单个服务器的在线玩家数量,在项目的初期,应该通过压力测试来预测在线玩家的上限!
工程说明:
我们本着实验主义,认为一切理论皆是假设,而实践实验是检验真理的唯一标准!页游服务器取自大型端游单服务器\单地图服务器的设计;用单线程去处理所有的逻辑,IO,数据库,文件操作各有负责的线程,线程之间通信用异步消息队列! 这样方案的优势在于,化解了多进程部署上的问题和运营成本,吸取了多线程的优势,而不必在编写逻辑的时候考虑多线程,在一定程度上解放程序员,即加快开发进度,以适应竞争日益激烈的页游!
测试指标:
1: 网络库的吞吐量!
2: 网络延迟
3: 内存使用状况
4: 最高玩家在线
方案1:
采用PINGPONG测试方案,客户端向服务器发送消息包,服务端接收到客户端的消息包,将消息报原封不动的返回给客户端,客户端接收到消息包,再次发送给服务器,如此往复!
方案2:
在方案1的基础之上,每一个客户端发送的消息包,携带当前时间,当客户端收到服务端的返回时,用当前时间减去消息包所携带的时间,就是网络延迟
方案3:
内存的使用状况,还是通过操作系统的工具来,比如top等!
方案4:
外网环境模拟:
在开服期间,页游平台向服务器不断的导入玩家;导入用户的期间,是单服压力最大阶段,最高在线预计在3k左右;这3k的人分布在三个地图之上,地图较大,屏幕内大概也就10个左右的玩家。我们做很多机器人来模拟大量玩家。在开服几天,每个玩家的视野大概也就是一屏幕的地图,每个屏幕上的地图大概分散着10(N个,可调整)个左右的玩家。这十个玩家,每走动一次,都要将自己的最新状态广播给周围的这十个玩家。我们将地图分散开来,假设每一张地图上面就只有十个玩家,我们开启200个这样的地图,这样就是2k的人在线,每一个机器人,每秒向后端做3(N,可以调整)个请求,后端将这样一个请求广播给给图上其他的9个玩家并且返回给机器人自己!这样就模拟了2k在线的情况;如果我们开启300个地图,那么也就是3k在线。以此类推!
在这样的模拟环境中,我们要检测一些数据,
1:网络延迟,在100ms左右,可以容忍;
2:服务器每秒处理的消息数,
3:内存状况监测,查看是否有内存泄露问题!
4:调整每个地图上的玩家个数,和开启的地图数目
5:调整机器人每秒的请求数
客户端技术:
起初我的方案是用线程去去模拟玩家机器人,随后弃之~,其实只要用socket就好,用epoll去管理N个socket(机器人)的发送和接受数据!发送一般为定时发送,接受则需要epoll的机制。故压力测试的客户端,可以和服务端公用一个底层!
PS:
欢迎各位大神来讨论,游戏服务器技术讨论群:156519985,欢迎有经验的人来!
阿里云主机(VPS主机)上搭建Anki服务器及Anki服务器搭建方案分析 大家都知道Anki是一款优秀的记忆软件,拥有优秀的记忆算法,高度可定制性,跨几乎所有平台等诸多优点。但由于AnkiWeb的服务器在国外,国内同步的同步速度真的是相当的慢- -,如果只有卡片只有文字内容还能接受,如果记忆库中有许多媒体文件(图片,音频等),同步速度根本没法忍- -...如果手动同步,又太麻烦(好吧其实是我懒- -),还好我们可以通过自己搭建服务器的办法达到较快的同步速度。
相关文章
- 【服务器】当我们对服务器进行测试,我们测试什么?
- windows 7系统搭建本地SVN服务器的过程
- 第四百零五节,centos7下搭建sentry错误日志服务器,接收python以及Django错误,
- 详解Linux服务器最大tcp连接数
- 性能测试:监控web服务器--Tomcat
- 性能测试:监控web服务器--apache
- 用SVN钩子实现SVN与WEB测试服务器同步
- EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器解决方案之Windows服务安装
- EasyNVR无插件流媒体服务器前端技术防止重复提交的方法
- SAP Spartacus storefrontapp不是运行在简单的tomcat服务器上
- 步骤5 - Orchestra从微服务提供商获得结果,再发送回WebSocket服务器
- CentOS 6.8 安装 Samba 服务器
- 服务器性能测试中有哪些常用的性能指标?
- 使用 iperf3 测试两个服务器 之间的 带宽速度 测速
- 服务器常用性能测试脚本
- Java-idea-创建maven项目,部署项目,部署服务器,简单测试
- 嵌入式linux开发,开机从TFTP服务器加载linux内核
- python+appium自动化测试-调用服务器接口
- python glances来监控linux服务器CPU 内存 IO使用
- YCSB benchmark测试mongodb性能——和web服务器测试性能结果类似
- 使用Tornado作为Django App的服务器
- 2022国赛23:linux服务器如何添加开放端口
- Mac搭建本地服务器及测试demo