性能测试
什么是服务器做压力测试?
通过压力测试对游戏或应用服务器性能进行高压测试,暴露出其所存在的问题 主要是从以下三个维度来衡量:
- 响应时间:从用户角度
- 服务器资源:从系统角度
- 吞吐量:从业务角度
为什么压力测试?
无论是对广大的用户,还是项目团队本身,亦或是运维工作,压力测试是一项很重要的工作。比如在一个游戏上线之前,能承受多大访问量、在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验。所以,压力测试非常有必要,有了这些数据,我们就能对自己要运营和维护的游戏或应用做到心中有数。
服务器压力没有优化好的后果?
- 轻:响应时间>2s 用户一定程度上失去耐心,延迟感受明显,玩家流失到更畅快的竞品中去
- 中:登录失败,登录排队 用户流失加速,甚至引发大量负面评论
- 重:服务器爆棚宕机 用户急剧流失,投诉应接不暇
不管后果轻重,对用户而言都是用户体验的损失,对游戏研发商来说是直接造成经济损失。 在网游、页游,端游短短的发展史至今,已经有不少中外大小开发商为此向玩家公开表示歉意或赔偿。提前预测和预防这样的隐患,降低其发生的概率无疑是双赢的选择。
性能测试流程
压测常用指标
每秒处理事务(TPS,Transaction Per Second) 每秒系统处理事务(通过、失败以及停止)的数量。通过它可以确定系统在任何给定时刻的时间事务负载。
事务平均响应时间(Average Transaction Response Time) 每一事务执行所用的平均时间,通过它可以分析测试场景运行期间应用系统的性能走向。
最大响应时间(Max Response Time) 指用户发出请求或者指令到系统做出反应(响应)的最大时间。
最少响应时间(Mininum ResponseTime) 指用户发出请求或者指令到系统做出反应(响应)的最少时间。
90%响应时间(90% Response Time) 是指所有用户的响应时间进行排序,第90%的响应时间。
CPU(CentralProcessing Unit) 中央处理器,是计算机的重要设备之一。功能主要是解释计算机指令以及处理计算机软件中的数据。
- CPU利用率(CPU Usage) CPU利用率分为用户态,系统态和空闲态,分别表示CPU处于用户态执行的时间,系统内核执行的时间,和空闲系统进程执行的时间。平时所说的CPU利用率是指:CPU执行非系统空闲进程的时间/CPU总的执行时间。
内存(Memory) 也被称为内存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。
内存使用率(Memory usage) 内存占用率指的是此进程所开销的内存。
磁盘IO(Disk input/ output) 磁盘的读写包速率。
网卡负载(Network Load) 网卡的进出带宽,包量。
负载测试主要性能指标
核实在保持配置不变的情况下,测试对象在不同操作条件(如不同用户数、事务数等)下性能行为的可接受性。
请求访问数量(VU 或RequestThread) 指发送请求压力的数量
HTTP错误率(HTTP error rate) 在选定时间段内,HTTP错误数量与请求数量的比率。
吞吐率(Throughput) 是场景运行过程中服务器每秒的吞吐量。其度量单位是字节,表示每个请求连接在任何给定的每一秒从服务器获得的数据量。
系统性能监控
- 事务(Transactions) 事务是用户某一步或几步操作的集合。