游戏服务器性能测试
2020-07-09 17:32:17 【

并发用户数:是指现实系统中操作业务的用户,在性能测试工具中,一般称为虚拟用户数(Virutal User)。

注册用户数:一般指的是数据库中存在的用户数。

在线用户数:只是 ”挂” 在系统上,对服务器不产生压力


并发用户数一定会对服务器产生压力的,而在线用户数只是 ”挂” 在系统上,对服务器不产生压力


TPS:Transaction Per Second, 每秒事务数, 是衡量系统性能的一个非常重要的指标。

TPS就是每秒事务数,但是事务是基于虚拟用户数的,假如1个虚拟用户在1秒内完成1笔事务,那么TPS明显就是1;

如果某笔业务响应时间是1ms,那么1个用户在1秒内能完成1000笔事务,TPS就是1000了;

如果某笔业务响应时间是1s,那么1个用户在1秒内只能完成1笔事务,要想达到1000TPS,至少需要1000个用户;

因此可以说1个用户可以产生1000TPS,1000个用户也可以产生1000TPS,无非是看响应时间快慢。在评定服务器的性能时,应该结合TPS和并发用户数,以TPS为主,并发用户数为辅来衡量系统的性能。


在性能测试时并不需要用上万的用户并发去进行测试,如果只需要保证系统处理业务时间足够快,几百个用户甚至几十个用户就可以达到目的。很多专家做过的性能测试项目基本都没有超过5000用户并发。因此对于大型系统、业务量非常高、硬件配置足够多的情况下,5000用户并发就足够了;对于中小型系统,1000用户并发就足够了。


性能测试需要一套标准化流程及测试策略,在实际测试时我们还需要考虑其它方面的问题,比如如何模拟成千上万来自不同地区用户的访问场景、如何选用合适的测试软件。性能测试对一些小的团队来说并非易事。


操作步骤

一、明确测试压力的前提

1.服务器硬件

a.硬盘I/O

b.内存 (64G)

c.CPU 核心数 (24核)

2.网络压力

a.长连接

1.最大连接数

2.流量

b.长连接短周期(类似HTTP的TCP应用,loginagent)

1.每秒建立的连接数

2.实际处理能力

3.数据库

a.每秒事物数

b.每秒锁等待数

c.平均延时(ms)

d.cpu暂用

4.多线程的最优线程数 (随着事物的消耗,存在一个最优线程数的问题,过多的线程反而会降低服务器效率)

a.数据库执行的多线程

b.多连接处理


二、设计注意事项

1.对于数据库性能测试上,由于所有的游戏服务器架构在DB前面都有一个实现DB缓冲功能的进程,以减少数据库频繁的读写操作。读是一个轻量级的数量,写操作是一个周期性的过程。设计时一定要能够驱动这种周期性能过程,比如战斗,导致游戏玩家数据的改变,或驱动所有在线玩家数据的周期性存储。

2.选择具有代表性,并且最频繁的游戏操作。比如:战斗,移动,聊天

3.聊天性能测试

广播聊天是最为考验游戏信息发送能力的功能。通过进行全局广播的压力测试,可以获取服务器进程发送信息到客户端最高承载量,进而可以对我们的各种广播功能进行一个预估和频率限制。

4.同屏玩家的移动测试

移动+广播,这两种信息基本是网游流量的70-80%左右,同屏玩家数量将会增加各种数据的广播需求,非常影响游戏性能,所以同屏的移动测试也是广播测试的一个必要环节,需要根据实际结果进行适当优化。

5.大量玩家同事登录测试

玩家登录时,有大量信息需要进行分配和初始化,同时也有大量的数据需要下传到客户端,服务器需要进行大量的TCP连接建立。


三、细节问题

a.进行测试需要仔细思考客户端性能影响服务器最后表现的可能性。比如

a1.模拟客户端的性能无法有效处理服务器返回信息,可能就导致服务器发送的信息缓存在服务器系统缓存,从而表现出服务器内存不断增加。表现为服务器发送能力不足,其实可能根本就是客户端的性能问题

a2.客户端性能问题,导致发起的请求数过少,从而导致单位时间内服务器处理的请求过少。表现为服务器性能不足,其实根本就是客户端的请求能力不足。


b.网络带宽导致最后表现不足

b1.确认服务器的各个网卡,以及相互的带宽。不然可能因为相互带宽,导致服务器对于客户端请求的处理延时。表现为服务器卡机

b2.客户端模拟多个玩家,比如1000个玩家。而客户端的网卡或者客户端与服务器之间的中转服务器带宽过小,导致服务器数据发送不出,内存不断增加。表现为服务器发送能力不足,其实是中间带宽问题。


c.debug i/o导致服务器性能下降

c1.进行性能测试,一定要取消debug用的同步的i/o.比如我们服务器的debuginternalLog.同步i/o是非常影响性能的,特别在压力测试下可能导致每秒上千上万甚至几十万次的执行。一处的文件写入操作就可以导致几十万次的处理能力变成几千次的处理能力。

c2.客户端避免进行阻塞操作导致模拟多用户性能下降,导致服务器表现性能下降


d.流量需要区分内网网

内、外网流量在游戏正式运行时是完全分开的。价格也是完全不同的。一个千M的外网是一个无法想象的运营成本,而kmbps/s现在已经是一个可以接受的代价。游戏进程需要进行不同网卡的配置和绑定。确定内外网流量。


】【打印关闭】 【返回顶部
上一篇为什么游戏服务器使用高防服务器.. 下一篇游戏行业选择服务器5个事项需要注..