通過jmeter壓測surging的方法

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、 桌面選擇&ldquo;計算機”(右鍵)–高級系統設置–環境變量

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內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: