<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      4. 堪比JMeter的.Net壓測工具 - Crank 進階篇 - 認識wrk、wrk2

      目錄

      1. 堪比JMeter的.Net壓測工具 - Crank 入門篇
      2. 堪比JMeter的.Net壓測工具 - Crank 進階篇 - 認識yml
      3. 堪比JMeter的.Net壓測工具 - Crank 進階篇 - 認識bombardier
      4. 堪比JMeter的.Net壓測工具 - Crank 進階篇 - 認識wrk、wrk2
      5. 堪比JMeter的.Net壓測工具 - Crank 實戰篇 - 接口以及場景壓測
      6. 堪比JMeter的.Net壓測工具 - Crank 實戰篇 - 收集診斷跟蹤信息與如何分析瓶頸
      7. 堪比JMeter的.Net壓測工具 - Crank 總結篇 - crank帶來了什么

      1. 前言

      上一篇文章我們了解了bombardier,并知道了bombardier.yml與開源項目bombardier的關系,接下來的文章我們了解一下wrk、wrk2,并對比一下它們與bombardier的關系

      2. 認識wrk

      wrk是一種現代 HTTP 基準測試工具,能夠在單個多核 CPU 上運行時產生大量負載。它結合了多線程設計和可擴展的事件通知系統,例如 epoll 和 kqueue。

      其支持參數:

      -c, --connections: total number of HTTP connections to keep open with
                         each thread handling N = connections/threads
      
      -d, --duration:    duration of the test, e.g. 2s, 2m, 2h
      
      -t, --threads:     total number of threads to use
      
      -s, --script:      LuaJIT script, see SCRIPTING
      
      -H, --header:      HTTP header to add to request, e.g. "User-Agent: wrk"
      
          --latency:     print detailed latency statistics
      
          --timeout:     record a timeout if a response is not received within
                         this amount of time.
      

      基礎用法:

      運行了30秒的基準測試, 使用2個線程、100個http連接:

      wrk -t2 -c100 -d30s http://127.0.0.1:8080/index.html
      

      進階用法:

      每次發送三個http請求:

      wrk -t2 -c100 -d30s --script ./pipeline.lua http://127.0.0.1:8080
      

      新建pipeline.lua

      -- example script demonstrating HTTP pipelining
      
      init = function(args)
         local r = {}
         r[1] = wrk.format(nil, "/?foo")
         r[2] = wrk.format(nil, "/?bar")
         r[3] = wrk.format(nil, "/?baz")
      
         req = table.concat(r)
      end
      
      request = function()
         return req
      end
      

      3. 認識wrk2

      wrk2是一個主要基于 wrk 的 HTTP 基準測試工具。是一個被 wrk 修改以產生恒定的吞吐量負載,并將延遲細節精確到高 9s(即當運行足夠長的時間時可以產生準確的 99.9999%'ile)。除了 wrk 的參數之外,wrk2 通過 --rate 或 -R 參數(默認為 1000)采用吞吐量參數(每秒總請求數)

      除支持wrk的參數之外,還支持參數:

      -R, --rate: 采用吞吐量參數(每秒總請求數),默認為1000
      

      基礎用法:

      運行了30秒的基準測試, 使用2個線程、100個http連接、并保持每秒2000個請求的恒定吞吐量:

      wrk -t2 -c100 -d30s -R2000 http://127.0.0.1:8080/index.html
      

      高級用法與wrk一致,此處忽略不寫

      我們使用wrk2測試一下百度的壓測情況

      安裝:

      sudo apt install wget
      sudo wget https://aspnetbenchmarks.blob.core.windows.net/tools/wrk2
      

      運行:

      ./wrk2 -d 3s -c 200 -t 200 -R 10 -L https://www.baidu.com
      

      asciicast

      輸出了本次請求每秒請求次數、吞吐量以及詳細情況:

      • Requests/sec: 每秒請求次數
      • Transfer/sec: 每秒吞吐量

      4. 了解Microsoft.Crank.Jobs.Wrk

      在Microsoft.Crank.Jobs.Wrk項目中Program.cs

      1. 檢查平臺是否是64位的Linux系統、并檢查參數是否滿足要求
      2. 通過HttpClient發送請求,并記錄第一次發送請求所消耗的時間
      3. 下載wrk,并設置wrk是可執行的
      4. 通過yml傳遞過來的參數構建完整的wrk命令
      5. 將輸出的結果使用追加到stringBuilder上,再賦值給output,
      6. 通過正則匹配結果,最后通過BenchmarksEventSource存儲并輸出到控制臺或數據庫、csv、json中

      其中:

      • connections: 每個線程處理時保持打開的 HTTP 連接總數 N = 連接數/線程數
      • serverUri: 自定義url,如果此參數存在,則請求地址為: {serverUri}:
      • serverPort: 服務端口
      • serverScheme: 服務的Scheme,默認http、支持http、https兩種
      • serverAddress: 服務地址、不包含http、例如: www.baidu.com,如果serverUri存在,此配置無效,如果不存在,請求格式為: {serverScheme}??/{serverAddress}:
      • path: 服務接口地址,不包含域,例如: /api/check/healthy
      • warmup: 預熱時間,默認15s,與執行duration類似,而并非壓測次數
        • 當warmup > 0時,會先預熱warmup秒后再執行一次壓測,第二次的壓測才是最后返回的結果
        • 當warmup = 0時,不進行預熱,直接開始壓測
      • duration: 測試時長,默認15s
      • threads: 線程數、默認:32
      • customHeaders: 自定義headers,如果預設headers中沒有需要的header,則通過重寫customHeaders,以完成自定義header的目的
      • pipeline: 管道數量,默認為1,當大于1時,支持同時發送多個請求
      • script: 如果pipeline不大于1時,支持自定義lua腳本以及lua參數

      5. 總結

      優勢:

      • 支持lua腳本,支持動態參數或者更改請求等復雜操作
      • 使用C語言開發、性能高

      劣勢:

      • lua腳本存在學習成本

      wrk.yml的存在是為Microsoft.Crank.Jobs.Wrk提供配置參數,Microsoft.Crank.Jobs.Wrk通過調用開源項目wrk實現壓測,并將壓測結果通過BenchmarksEventSource存儲并輸出到控制臺或數據庫、csv、json中

      wrk2是基于wrk二次開發,擁有所有wrk的配置,并且支持吞吐量限制,bombardier、wrk、wrk2都是http基準測試工具,豐富了crank對于Http的基準測試能力,三者之間并無優劣之分,根據三者之間的優劣勢自行選擇適合自己的即可

      源碼地址:https://github.com/doddgu/crank/tree/sample

      開源地址

      MASA.BuildingBlocks:https://github.com/masastack/MASA.BuildingBlocks

      MASA.Contrib:https://github.com/masastack/MASA.Contrib

      MASA.Utils:https://github.com/masastack/MASA.Utils

      MASA.EShop:https://github.com/masalabs/MASA.EShop

      MASA.Blazor:https://github.com/BlazorComponent/MASA.Blazor

      如果你對我們的 MASA Framework 感興趣,無論是代碼貢獻、使用、提 Issue,歡迎聯系我們

      16373211753064.png

      posted @ 2022-03-14 09:54  尋找和諧  閱讀(828)  評論(4)    收藏  舉報
      主站蜘蛛池模板: 亚洲高潮喷水无码AV电影| 亚洲中文字幕av不卡无码| 99精品国产一区二区三区不卡| 91老熟女老人国产老太| 久久精品国产亚洲av麻豆小说 | 国产老熟女伦老熟妇露脸| 精品一区二区三区四区五区 | 亚洲自拍偷拍激情视频| 亚洲a∨国产av综合av下载| 在线看片免费人成视久网| japan黑人极大黑炮| 中文字幕在线精品人妻| 亚洲欧美在线一区中文字幕| 曰韩亚洲AV人人夜夜澡人人爽| 精品日韩亚洲av无码| 亚洲精品国自产拍影院| 女厕偷窥一区二区三区| 无码人妻斩一区二区三区| 成人动漫综合网| 国产女人18毛片水真多1| 女人喷液抽搐高潮视频| 九九热在线精品免费视频| 亚洲春色在线视频| 国产激情文学亚洲区综合| 日韩有码av中文字幕| 亚洲av无码精品色午夜蛋壳| 日本亚洲一区二区精品| 久久精品蜜芽亚洲国产av| 日韩av熟女人妻一区二| 国产精品亚洲综合网一区| 激情久久av一区av二区av三区| 日韩精品亚洲aⅴ在线影院| 国产精品中文字幕综合| 日本高清aⅴ毛片免费| 熟妇无码熟妇毛片| 亚洲欧洲中文日韩久久av乱码| 在线a亚洲老鸭窝天堂| 色伊人久久综合中文字幕| 最近中文国语字幕在线播放| 亚洲高请码在线精品av| 精品人妻中文字幕在线|