记一次性能测试
我负责的一个项目经过长时间的开发、测试,终于在客户现场正式运行了。运维人员在正式运行前进行了试运行,结果在一定数量的并发下,硬盘顶不住,系统直接卡死了。于是开展一次性能测试,找到瓶颈。本文记录下大概测试思路及方法。
性能影响因素分析
项目的主要功能是对监控设备的视频流进行切片、存储,然后生成URL供平台调阅。系统分为两个部分-切片系统、存储系统,存在不同存储方式,理论中各个存储方式有不同性能瓶颈。
与研发沟通后,确定切片系统需关注:cpu使用率、平均负载、内存使用。存储系统需关注存储:cpu使用率、内存使用率、平均负载、系统读写带宽、硬盘读写带宽、网络带宽。
确定测试方向后,开始围绕它们展开测试。
确定测试方案
项目主功能的流程如下:

然后确定方案:
- 接口工具下发切片指令(多种并发情况),使用 top 命令获取切片系统服务器在切片过程中的 cpu使用率、平均负载、内存使用率;使用 nload 命令获取网络带宽。
- 同时使用 top 命令获取存储系统服务器的cpu使用率、平均负载、内存使用率;使用 iostat 命令获取系统读写带宽、硬盘读写带宽。
- 分析整理获取到的数据,并制作成图表。
搭建环境并执行测试
切片系统服务器
符合业务需求(目标硬件)的服务器,安装切片系统和 nload。
存储系统服务器
符合业务需求(目标硬件)的服务器,安装存储系统和 iostat。
自动化获取信息
首先在对应服务器中编写获取信息的脚本,然后在操作机用 Python 编写脚本(下发切片指令,远程执行服务器脚本并将信息拉取到本地).
制造结果图表
使用 Chart.js 制作图表,效果如下。
