Linux 命令行单机压测全流程
Posted 七月的小尾巴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 命令行单机压测全流程相关的知识,希望对你有一定的参考价值。
安装环境
首先,在 Linux操作系统中压测,我们需要安装 JMeter环境,具体安装教程,可以看我这的另外一篇博客。 《Linux环境搭建JMeter》.
单机压测
安装好之后,我们将脚本文件上传到Linux,输入 jmeter -n -t 文件名称
进行压测
- -n :命令行模式,no GUI
- -t :jmx脚本路径
- -l:jtl结果文件存放路径
压测数据分析
- 首先,我们看第三列的数据,每一行都是一串数字,这个数字则表示,在某个时间段我们的请求数,我们可以看到旁边有个 + 和 = 号,可以发现,第一列 1836 + 第 二列 12385 = 第三列的数据14221,由此我们不难发现他的请求数,是不断累计的。
- 下面我们可以看到,每30s秒,他的总请求数
- 这里显示的是我们的平均TPS,可以看到我们没秒钟可接收的请求数,平均是在453.0/s Avg
- 这个相信做过压测的朋友都不难理解,这里记录的是我们每秒的平均最小响应时间和最大响应时间。
- 这里显示的则是错误率,旁边是错误个数,后面是错误率。我们在压测的时候需要关注错误率,如果说错误率较高,那就意味着系统已经报错了,或者说脚本出现问题。那么我们需要进行排序错误原因。
- Active:正在活动的线程数
- Started:已经启动的线程数
- Finished:已经结束的线程数
JMeter参数优化
我们进入到 JMeter的bin目录下,打开jmeter.properties配置文件
1、控制台取样间隔时间设置
summariser.interval=10,默认30s,最低可修改为6s
设置完成之后,我们可以除了第一次以外(因为这个跟Jmeter底层的配置有关),下方的数据,每10s就会更新一次。说明我们更改的配置文件已经生效了。
2、JVM参数优化
bin目录下, vi jmeter,修改HEAP的size大小,默认1024M,可以设置成2048M(前提是内存够) HEAP="-Xms2g -Xmx2g -XX:MaxMetaspaceSize=256m"
3、默认编码修改
samplersult.default.encoding=UTF-8
jmeter结果报表
三种方式来获取JMeter的结果报告
-
在GUI模式下跑JMeter的脚本,用tps插件实时展示图标(在实际工作中,不推荐第一种执行方式,会影响JMeter的性能。)
-
在命令行模式下跑JMeter的脚本,生成jtl文件,在GUI界面的聚合报告里打开,可以展示tps和响应时间等。
使用如下命令,生成压测报告
jmeter -n -t Linux.jmx -l result2.jtl
执行之后,我们可以看到文件中新增了一个result2.jtl的文件
下面我们使用sz命令,将文件下载到我们电脑中。使用聚合报告打开文件即可
-
在命令行找下跑JMter的脚本,生成jtl文件,通过Jmeter自带的命令,生成html报表。
HTML报表生成步骤:
1、进入jmeter的bin目录下,修改reportgenerator.properties
2、修改jmeter.reportgenerator.overall_granularity = 1000(报表中数据展示间隔1秒)
3、创建一个存放数据报表的文件夹,report
4、执行命令:jmeter -g result.jtl -o ./output
其中:
-g 指定jtl文件的路径
-o 指定html报表生成到哪个文件下注意:只有JMter 3.0 版本以上支持此功能
5、生成html文件之后,由于是html文件,我们需要在浏览器中打开,所以我们将report文件压缩,zip -r 压缩文件名称 + 需要压缩的文件名
输入zip命令,如果提示没有该命令,则需要下载 yum install zip
下载之后,我们同样使用sz 命令,下载到我们本地的电脑上。我们从浏览器中打开。
通常我们html文件中,主要关注下方的数据,这个就是我们生成聚合报告中的内容。
响应时间:
TPS:
以上是关于Linux 命令行单机压测全流程的主要内容,如果未能解决你的问题,请参考以下文章
VSCode自定义代码片段15——git命令操作一个完整流程