游戏服务器压力测试总结 自游戏内测以来游戏素材下载 免费,所有与服务器压力相关的测试均已完成。 现在总结一下。 暂时不方便讲游戏架构游戏服务端开发,就不在图中展示了。 1、首先明确需要进行压力测试的内容: 1、游戏服务器硬件 a. 硬盘 I/O。 内存 C. CPU 2. 网络压力 a. 长连接a1。 最大连接数a2。 出) b. 长连接短周期(类似Http的TCP应用,这个是特殊需求,专门针对LoginAgent) b1. 每秒建立的连接数 b2。 实际处理能力 3.数据库 a. 每秒事务数 b. 每秒等待的锁数 c. 平均延迟(毫秒) d. CPU 临时使用 4. 多线程的最佳线程数 a. 数据库执行的多线程 b. 多连接处理 二、Windows Server环境测试方法 1、服务器性能监控 使用Server自带的性能监视器设置各个进程的监控参数。 Window的这个自动工具还是挺强大的。 自己摸一下基本就可以用了。 每个参数都有详细的描述。 二、案例设计注意事项对于数据库的性能测试,现在所有的游戏服务器架构都有一个进程,在DB前面实现DB buffer的功能,减少对数据库的频繁读写操作。 所以实际上,数据库的读取是一个轻量级的量; 而数据库的写操作是一个周期性的执行过程。 案例设计必须能够驱动这种循环性能过程。
比如我们游戏的战斗导致玩家数据的变化,或者驱动所有在线玩家数据的周期性存储。 b. 选择有代表性和最频繁的游戏操作。 用于收集最高在线用户的各项性能指标。 我们选择的是:战斗、移动、聊天 c. 聊天性能测试 广播聊天是最考验游戏信息发送能力的功能。 通过全球广播的压力测试。 我们可以获得服务器进程向客户端发送信息的最大容量。 反过来,我们可以对我们的各种广播功能进行估计和频率限制。 d. 手机测试手机+同屏播放播放器。 这两种信息基本上占了网络游戏流量的70-80%左右。 同屏播放人数的增加会增加各种数据的播放要求,这将极大地影响游戏性能。 因此,同屏移动端测试也是直播测试中必不可少的环节。 需要根据实际结果进行适当的优化。 e. 大量玩家同时登录。 测试玩家登录时,需要分配和初始化大量信息; 同时需要将大量数据下载到客户端。 服务器需要建立大量的 TCP 连接。 所以这是一个比较关键的过程。 这个测试用例是一个特例,但是绝对是操作中会遇到的一个用例。 F。 由于线程池处理事务,事务需要时间,因此存在最佳线程数的问题。 过多的线程反而会降低服务器效率。 3.细节测试需要仔细考虑客户端性能影响服务器最终性能的可能性。 例如,a1。 模拟客户端的性能无法有效处理服务器返回的信息,可能导致服务器发送的信息缓存在服务器系统缓存中,从而表现为服务器内存不断增加。
服务端发送能力不足,其实可能是客户端的性能问题。 表现为服务端性能不足游戏服务端开发,其实只是客户端的请求能力不够。 b. 网络带宽导致b1端性能不足。 确认服务器各网卡及相互带宽。 否则,由于相互带宽,服务器可能会延迟对客户端请求的处理。 它被显示为服务器卡机b2。 客户端模拟多个玩家,比如1000个玩家。 但是客户端的网卡或者客户端和服务器之间的中转服务器带宽太小,导致服务器无法发送数据,内存不断增加。 显示服务器发送能力不足,其实是中间带宽问题。 c.debug i/o 导致服务器性能下降 c1. 要进行性能测试,请务必取消用于调试的同步 i/o。 比如我们服务器的debuginternalLog。 同步 i/o 会极大地影响性能,尤其是在压力测试下,这会导致每秒执行数千甚至数十万次。 一次文件写入操作可以将数十万处理能力变成数千处理能力。 c2。 客户端避免阻塞操作,导致模拟多用户性能下降,导致服务器性能下降。 d. 流量需要区分内部网络和外部网络。 游戏正式运行时游戏图片,流量完全分离。 价格也完全不同。 1000M的外网是难以想象的运营成本,kmbps/s现在是可以接受的价格。 游戏过程需要不同网卡的配置和绑定。 确定内部和外部网络流量。