最近破费买了一台服务器,准备搭建自己的网站,顺便将自己开发的一些测试小工具部署到服务器上,虽然机器配置一般,还是决定对服务器进行压测一番,看一下服务器性能如何。本次压测选择的工具是JMeter,这个工具也是接口测试工具,可以做接口自动化测试。话不多说,开整。
直接安装dmg文件即可。
JMeter
安装很简单,直接解压官网下载的.tgz安装包就行了
https://archive.apache.org/dist/jmeter/binaries/
启动,有两种方式
进入解压的Jmeter的bin目录,执行./jmeter即可启动
jmeter -n -t xx.jmx -l log.jtl
⚠️压测注意事项:Don't use GUI mode for load testing:不要使用GUI模式进行负载测试。
服务介绍
http://121.196.172.xxx/?s=%E4%BD%A0%E5%A5%BD,该服务就是一个HTTP请求,Get请求方法。
服务器配置
配置项 | 配置值 |
---|---|
CPU | Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz |
内存 | 2G |
硬盘 | 40G |
操作系统 | Red Hat 4.8.5-11 |
压测任务
简单压测查询服务性能,具体操作开启100个线程对查询接口进行压测15min,观察性能表现。
压测脚本开发
我们设定测试场景为100用户,每隔1秒启动10个新客户;整个测试持续15min。现在,我们切换到性能测试脚本目录下,执行下面的命令启动测试:
jmeter -n -t xxx.jmx -l log.jtl
生成压测报告
jmeter -g log.jtl -o <report folder>
服务器监控
先看下服务器监控
压测结果分析
我们需要先对测试结果做个介绍,查看数据统计图:
平均响应时间3622ms,吞吐量12.92Tranction/s。
聚合报告参数详解:
吞吐量
可以看到查询服务的TPS在1分钟内逐渐攀升,最终稳定在13QPS左右。
响应时间
在开始逐渐加压的1分钟内响应时间不断增加,可以结合服务器监控发现,这主要是因为开始加压阶段CPU占用飙升至90%,内存使用也在增加(非主因)导致。随着线程全部开启后,资源消耗相对稳定,响应时间开始逐渐降下来,最终在2000ms左右徘徊。
75%的事务处理时间都在4755ms以下,整体平均响应时间处于2800ms以下。
结论:在100线程并发场景下,服务器最大QPS可以达到13。