服务端性能测试
2020-04-30 本文已影响0人
猪儿打滚
后端/服务端性能测试
- 服务端性能测试就是在确保功能正确的情况下,模拟多个用户对该功能进行操作,然后看服务端系统的性能指标、以及服务器资源的使用情况。
- 目的
对服务端进行性能测试,是为了验证系统是否能够达到预期的性能指标,发现系统存在的性能瓶颈,从而达到优化系统的目的
PS.以后的“性能测试”,默认都是服务端性能测试
1.1、性能测试类型
ps.百度的话类型很多,但是个人觉得最常用的是这三种
- 基准测试
- 负载测试
- 压力测试
基准测试
基准测试就是模拟单个用户的业务场景,跑一遍性能脚本,主要目的有两个:
- 验证测试脚本的正确性
- 结果作为基准测试结果,为后续的性能测试分析调优做参考依据
负载测试
在一定的软硬件环境上,通过不断增大负载(并发)来测试系统能够承受的最大负载,超过了这个负载,则系统的性能就会下降,用来获取系统的最大负载。大部分情况下,cpu的使用率不允许超过80%(比top
更好的命令:htop
)
- 目的
获取到系统的性能瓶颈(最佳性能点),并通过不断调优,来提高系统的性能瓶颈(一般cpu不能超过80%)
压力测试
压力测试是在高负载(高并发、大数据量)下进行的测试,查看系统在峰值使用情况下的表现,能够有效发现系统是否具有良好的容错能力和可恢复能力。
在极限负载(性能瓶颈时的并发量)进行持久性(比如24小时以上)的测试,测试系统在极限状态下长时间运行是否稳定,是否出现内存泄漏、资源回收机制出现问题、吞吐量降低、响应时间增长、事务处理失败、CPU/内存等资源增长等问题
- 目的
测试系统在高负载的情况下,是否能够持久稳定运行
1.2、性能指标分类
服务器相关
CPU使用率、磁盘IO使用率、内存使用率、网卡带宽使用率、CPU队列长度等
网络相关
网络带宽、网络吞吐量、网络缓冲池大小(不懂)
数据库相关
数据库连接数、数据库读写吞吐量、数据库读写响应时长、数据库锁等
缓存相关
CDN缓存命中率、静态资源缓存命中率、动态资源缓存命中率等
测试工具相关
测试工具消耗的CPU、内存、磁盘IO、网络带宽等,因为测试工具本身如果出现瓶颈,那就无法产生预期的并发了压力,从而使得测试结果不准确。
1.3、性能测试流程步骤
- 前期了解,确定业务场景、性能指标等,制定测试方案
- 构建性能测试环境(大部分开发进行)、编写性能测试脚本并构建成场景
- 执行测试,进行监控,形成测试报告
- 根据测试报告,进行分析调优
1.4、性能测试工具
性能测试工具对比1.5、服务器监控工具
- nmon
- zbbix
- 云监控平台
比如WGCLOUD 集群监控平台
PS.本文参考文章