您的位置:首页 > 其它

游戏服务器压力测试

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

看看分析下
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: