后端服务器的压力测试

时间:2021-05-26 04:58:53

比如我要测试服务器的连接数最大能达到多少?以前测试的方法是一个客户端开启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:服务器一般指的是 游戏服务器的网络层,需要负载大量的玩家 ,做过类似工作的麻烦指点下,谢谢!