通过jmeter压测surging的方法
作者:fanly11
Jmeter简介
Jmeter是Apache开源的一个使用纯Java编写的压力测试工具,它最初是为测试web应用程序而设计的,但后来扩展到了其他测试功能。例如,可用于测试静态和动态资源以及web动态应用程序的性能等。Jmeter可以用来模拟对服务器、服务器组、网络或对象上的重负载,以测试其强度或分析服务在不同负载类型下的总体性能。
如今Jmeter是一个主流的、功能完善且强大的压测工具,由于是使用Java编写的,所以具有跨平台特性,可以运行在Windows、Mac、Linux等操作系统上。并且支持丰富的协议,如:HTTP/HTTPS、FTP、JDBC、SOCKET、SOAP。。。等,此外还有许多第三方插件支持以及第三方集成
前言
surging是异构微服务引擎,提供了模块化RPC请求通道,引擎在RPC服务治理基础之上还提供了各种协议,并且还提供了stage组件,以便针对于网关的访问, 相对于功能,可能大家更想知道能承受多大的并发,大家也会各自进行压测,当碰上一些问题,导致压测结果不理想就会扣帽子给框架引擎,这个性能不行,那么上一个帖子回应了@wen-wen 所贴的压测报告,针对于压测结果,很多人不明所以,都是以一笔带过的方式告诉大家结果,那么这次从头至尾,把环境和测试过程进行梳理,通过此篇文章进行发布,也请各大同行监督。
环境
处理:Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz 2.20 GHz
内存:16.0 GB
语言:.NET 6.0
下载配置源码
1.通过surging 下载最新的源码, 下载完之后,选择测试ManagerService 模块服务中的Say服务,而测试的代码也比较简单,就是返回一字符串,代码如下
public async Task<string> Say(string name) { return await Task.FromResult($"{name}: say hello"); }
2. 把日志级别提高,因为这会影响性能,比如设置的info 就要比error 级别低三倍,以测试的日志配置为例,测试使用的是NLog, 在Nlog.config 下把coloredConsole改成error级别,代码如下
<?xml version="1.0" encoding="utf-8" ?> <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <targets> <target name="coloredConsole" xsi:type="ColoredConsole" useDefaultRowHighlightingRules="false" layout="${longdate}|${pad:padding=5:inner=${level:uppercase=true}}|${message}" > <highlight-row condition="level == LogLevel.Debug" foregroundColor="DarkGray" /> <highlight-row condition="level == LogLevel.Info" foregroundColor="Gray" /> <highlight-row condition="level == LogLevel.Warn" foregroundColor="Yellow" /> <highlight-row condition="level == LogLevel.Error" foregroundColor="Red" /> <highlight-row condition="level == LogLevel.Fatal" foregroundColor="Red" backgroundColor="White" /> </target> <target name="file" xsi:type="File" archiveAboveSize="10240" layout="${date}|${level:uppercase=true}|${message} ${exception}|${logger}|${all-event-properties}" fileName="c:\surging1\${level}\_${shortdate}.log" /> </targets> <rules> <logger name="*" minlevel="error" writeTo="file" /> <logger name="*" minlevel="error" writeTo="coloredConsole" /> </rules> </nlog>
3. release类型下 发布server,之后通过dotnet Surging.Services.Server.dll 命令进行运行,运行成功之后,通过浏览器是否可访问
JMeter和JDK下载
1、JMeter下载地址:http://jmeter.apache.org/download_jmeter.cgi
2、JDK下载地址:https://www.oracle.com/technetwork/cn/java/javase/downloads/index.html
JDK+Jmeter安装
1、windows安装(以win 7为例)
1、 安装jdk、配置java环境变量(步骤略)
2、 解压apache-jmeter-2.13.zip到D盘
3、 桌面选择“计算机”(右键)--高级系统设置--环境变量
4、 在”系统变量“---”新建“,在变量名中输入:JMETER_HOME,变量值中输入:D:\apache-jmeter-2.13
5、 修改CLASSPATH变量,变量值中添加 %JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar; 再点确定。
6、 进入到D:\apache-jmeter-5\bin下运行jmeter.bat即可打开JMeter
Jmeter非GUI运行压测
创建配置jmx 文件
1. 新增Thread Group
配置thread group的user thread为2000
2. 在thread group 下新增Http Request
配置Http Request,压测接口为http://localhost:281/api/manager/say?name=fanly,记得勾上Use KeepAlive
3. 然后点击save as 达到D:\
4.运行jmeter 控制台进行压测,代码如下
jmeter -n -t D:\HTTP.jmx -l D:\read.csv -e -o D:\ResultReport
5. 运行结果如下
以上看不懂,可以把生成的read.csv 加载到jmeter 生成报告进行查看,如下图
从以上图可以看出surging 的http 压测的吞吐量是12589/s
结尾
也欢迎同行,粉丝,客户们可以按照以上的配置方式进行压测,也提醒各位不要开启info 级别日志,因为这会造成性能上大幅降低,压测只有4000/s ,只有error 级别差不多1/6 ,也透露下surging 后续会提供平台可视化,以下是部分模块
到此这篇关于通过jmeter压测surging的文章就介绍到这了,更多相关jmeter压测surging内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!