游戏服务器压力测试
2016-03-08 17:28
260 查看
比如我要测试服务器的连接数最大能达到多少?以前测试的方法是一个客户端开启N个线程 (N > 1000 或者2000,3000) 但是并没有达到测试的效果。 做过一些测试,基本方法是启动一个客户端,通过多个线程来同时来连接客户端,一个线程相当于一个客户端连接,线程数量是可控制的,设置参数一般为 100,1000,2000,5000 。有一些测试数据,也未曾记录下来,只是大概了解了下。因为属于ECHO模型的,还算稳定,少数线程的时候,连续测试几个小时,基本上不会有问题,但数量达到2000+的时候,有时候会终止,不能继续首发消息了,原因可能有多种吧,一个是线程,一个进程创建太多的线程,而且没有等全部创建完毕再进行消息收发;另外是环形缓冲,目前的情况下是比较稳定,但也不代表没有问题,也不是最优;另外就是SOCKET的一些参数可能设置不正确,或者是还有待优化,因为没有做过大量的性能测试,这方面的经验也不够,只是在网上找了些资料,大体如下: 1)测试通信处理能力: a)多连接,小数据量测试 客户端采用多线程与SERVER连接,采用多台终端同时与SERVER连接,每台终端同时建立不少于1000个连接,观察SERVER通信是否正常 b)常连接、大数据量测试 每个客户端与SERVER建立一条长连接,同时发送大数据量数据(如每次1M数据),观察SERVER能否正确接收 2)数据处理能力 a)每次连接时启动计时,在一定的时间内观察SERVER是否正确返回,统计交易成功率 b)碎片包测试:客户端把一个完整交易包分割成多个碎片包发送,观察SERVER能否正确组合和响应 3)可靠性测试 多台客户端同时与SERVER连接并自动发送交易数据,交易数据有单包,多包,碎片等模式,连接通信7X24小时,统计SERVER的交易成功率。 请问大家在做类似的测试的时候是怎么做的?应该不会真搞来几千台机器测试吧? BS:服务器一般指的是 游戏服务器的网络层,需要负载大量的玩家 ,做过类似工作的麻烦指点下,谢谢! 更多0分享到: |
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 回复次数:4 |
关注 oyljerry oyljerry 本版等级: 更多勋章 | #1 得分:50回复于: 2010-08-26 22:33:24 多线程不行了,那就多进程,开多个进程来模拟客户端... 一般大型服务器都会有测试简单,就是利用广大玩家来帮助测试 |
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 |
关注 cpp2017 cpp2017 本版等级: 更多勋章 | #2 得分:50回复于: 2010-08-26 22:45:09 多线程->多进程->多pc 一般有个3-5台电脑你的服务端肯定顶不住. |
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 |
关注 yuyunliuhen yuyunliuhen 本版等级: | #3 得分:0回复于: 2010-08-27 09:42:23 嗯,看来这样的测试也没有捷径的测试,还得请玩家帮忙 ^_^ 谢谢两位。 |
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 |
关注 pangguoxiong2 pangguoxiong2 本版等级: | #4 得分:0回复于: 2011-04-02 14:04:41 看看分析下 |
相关文章推荐
- RFS(六)Open Browser后,页面显示This is the initial start page for the WebDriver server.的解决办法
- android Json解析详解(详细代码)
- iOS 设计模式之工厂模式
- HDU 4786 斐波那契生成树
- 1001. A+B Format (20)
- 实现实体类和json类之间的相互转换
- svn 未提交的显示黑色的星*
- xcode去掉警告
- Swift 函数
- svn 未提交的显示黑色的星*
- HDOJ 1849 Rabbit and Grass (Nim 博弈)
- DIV边框重叠变粗解决方案(子元素浮动导致父元素失去高度解决方法)
- Python实现动态规划切割钢条问题
- pyhton标准库 json
- 缓存与缓冲的区别与应用
- java.nio.Buffer flip()方法
- mongodb 聚合操作 操作符
- IOS 多个UIImageView 加载高清大图时内存管理
- 最小生成树算法--并查集实现
- linux下的信号