跳至内容

记一次性能测试

我负责的一个项目经过长时间的开发、测试,终于在客户现场正式运行了。运维人员在正式运行前进行了试运行,结果在一定数量的并发下,硬盘顶不住,系统直接卡死了。于是开展一次性能测试,找到瓶颈。本文记录下大概测试思路及方法。

性能影响因素分析

项目的主要功能是对监控设备的视频流进行切片、存储,然后生成URL供平台调阅。系统分为两个部分-切片系统、存储系统,存在不同存储方式,理论中各个存储方式有不同性能瓶颈。

与研发沟通后,确定切片系统需关注:cpu使用率、平均负载、内存使用。存储系统需关注存储:cpu使用率、内存使用率、平均负载、系统读写带宽、硬盘读写带宽、网络带宽。

确定测试方向后,开始围绕它们展开测试。

确定测试方案

项目主功能的流程如下:

然后确定方案:

  1. 接口工具下发切片指令(多种并发情况),使用 top 命令获取切片系统服务器在切片过程中的 cpu使用率、平均负载、内存使用率;使用 nload 命令获取网络带宽。
  2. 同时使用 top 命令获取存储系统服务器的cpu使用率、平均负载、内存使用率;使用 iostat 命令获取系统读写带宽、硬盘读写带宽。
  3. 分析整理获取到的数据,并制作成图表。

搭建环境并执行测试

切片系统服务器

符合业务需求(目标硬件)的服务器,安装切片系统和 nload。

存储系统服务器

符合业务需求(目标硬件)的服务器,安装存储系统和 iostat。

自动化获取信息

首先在对应服务器中编写获取信息的脚本,然后在操作机用 Python 编写脚本(下发切片指令,远程执行服务器脚本并将信息拉取到本地).

制造结果图表

使用 Chart.js 制作图表,效果如下。