国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【性能優(yōu)化】一、使用JMeter進行壓力測試并進行簡單調(diào)優(yōu)

這篇具有很好參考價值的文章主要介紹了【性能優(yōu)化】一、使用JMeter進行壓力測試并進行簡單調(diào)優(yōu)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

壓力測試

壓力測試不同于功能測試,其目的是為了測試出系統(tǒng)在高并發(fā),高數(shù)據(jù)量的情況下可能會出現(xiàn)的問題(內(nèi)存泄露、并發(fā)、同步)

一種典型的內(nèi)存泄漏就是對象在創(chuàng)建之后由很多用戶進行調(diào)用,導致對象被不斷新建但復用率很低,導致內(nèi)存不足(內(nèi)存泄露的典型問題)

有效的壓力測試應(yīng)用的關(guān)鍵條件:重復、并發(fā)、量級、隨機變化

性能指標

  • 響應(yīng)時間:客戶端從發(fā)起一個請求開始,到接收到服務(wù)器的響應(yīng)為止,整個過程所耗費的時間

  • TPS:系統(tǒng)每秒能夠處理的事務(wù)數(shù)(Java中的事務(wù),暨一系列不可中斷的操作)

  • QPS:系統(tǒng)每秒處理的查詢次數(shù)(次/秒)(一般指接口的查詢次數(shù))

    TPS、QPS、HPS都是衡量系統(tǒng)處理能力的非常重要的指標,越大越好,

    • 金融行業(yè):1000 - 50000 TPS
    • 保險行業(yè):100 - 100000 TPS 可能涉及到極其復雜的業(yè)務(wù)場景,這種情況下允許TPS降低
    • 制造行業(yè):10 - 5000 TPS 使用并發(fā)量低,對高并發(fā)場景沒有很高的要求
    • 互聯(lián)網(wǎng)電子商務(wù):10000 - 1000000 TPS
    • 互聯(lián)網(wǎng)中型網(wǎng)站:1000 - 50000 TPS
    • 互聯(lián)網(wǎng)小型網(wǎng)站:500 - 10000 TPS
  • 最大響應(yīng)時間:用戶發(fā)出請求到收到響應(yīng)的最長時間

  • 最少響應(yīng)時間:用戶發(fā)出請求到收到響應(yīng)的最短時間

  • 90%響應(yīng)時間:所有用戶的響應(yīng)時間進行排序,第90%的響應(yīng)時間

  • 此外,我們要看重的指標主要有:吞吐量(每秒鐘系統(tǒng)可以處理的請求數(shù)、任務(wù)數(shù))、響應(yīng)時間:(服務(wù)處理一個請求或一個任務(wù)的耗時)、錯誤率:(一批請求中結(jié)果出錯的請求所占的比例)

JMeter

壓力測試工具有很多選擇,這里我們選擇JMeter進行壓力測試,一般選擇添加線程組、線程組下的HTTP請求、查看結(jié)果樹、匯總報告、聚合報告、匯總圖等信息用來檢查結(jié)果,結(jié)果可以查看吞吐量、90%百分位、中位數(shù)等信息來判斷系統(tǒng)性能

Windows下JMeter Address In Use錯誤的解決

由于我們使用JMeter時,每一次測試請求都需要占用一個windows端口,windows允許的對外端口是1024 - 5000 ,而Windows所需要的回收時間是4分鐘,故我們在短時間進行測試時,會發(fā)生端口不夠用的問題

在regedit注冊表信息中添加:

計算機\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

下新建DWORD值:MaxUserPort:65534、TCPTimedWaitDelay:30

使其端口最大允許65534、TCP回收時間為30S

性能優(yōu)化思路

首先,我們要知道影響性能的因素,主要包括:數(shù)據(jù)庫、應(yīng)用程序、中間件、網(wǎng)絡(luò)、操作系統(tǒng)等因素,再具體在其中進行對應(yīng)的優(yōu)化

其次,我們要知道我們的應(yīng)用程序?qū)儆?strong>CPU密集型 還是 IO密集型,系統(tǒng)常見的是計算、排序、數(shù)據(jù)處理等操作一般是CPU密集型應(yīng)用程序、常見的是進行數(shù)據(jù)讀取,發(fā)送,存儲的一般屬于IO密集型應(yīng)用程序,同時,我們也可以通過其實際上的運行情況進行判斷我們目前更需要哪方面的優(yōu)化(看CPU占用和IO占用情況)

JVM簡述:

我們在存放一個新的對象時,會優(yōu)先檢查其是否能被存儲在新生代的Eden區(qū),若放不下,則會進行YoungGC,對新生代進行檢測并清除,再檢查是否能放下,若還放不下,則直接向老年區(qū)存儲,若還是放不下,則進行Full GC,若還是放不下則會拋出OOM異常

同時,我們會盡量將Eden區(qū)的數(shù)據(jù)放到幸存者區(qū),以保證我們在新增對象的時候可以直接存放,不進行GC,另外Full GC的速度是Y GC速度的10倍左右,高頻的FullGC會導致系統(tǒng)性能極差

使用jvisualvm監(jiān)控性能指標

我們常用的監(jiān)控系統(tǒng)JVM性能指標的工具有jconsole、以及他的升級版jvisualvm,這里我們使用升級版的工具jvisualvm進行性能監(jiān)控:

注意,高版本JDK已經(jīng)不再自動集成jvisualvm,需要我們自己安裝

jvisualvm的作用:監(jiān)控內(nèi)存泄漏、跟蹤垃圾回收、執(zhí)行時內(nèi)存、CPU分析、線程分析…

運行:正在運行的線程

休眠:sleep中的線程

等待:wait的線程

駐留:線程池中的空閑線程

監(jiān)視:阻塞的線程(正在等待鎖的線程)

安裝Visual GC

tools -> Plugins 在settings中打開網(wǎng)址(io結(jié)尾)在download中選擇左邊的Visual GC下載,不要被網(wǎng)上的教程從右邊下載欺騙,下載安裝之后我們就可以查看對應(yīng)的Java線程的GC信息

實際使用壓力測試進行簡單優(yōu)化

在Linux中,我們可以使用docker status來對Linux中的線程進行監(jiān)控,從而做出進一步的判斷,創(chuàng)建單測,進行一定的測試:

壓測內(nèi)容 壓測線程數(shù) 吞吐量/s 90%響應(yīng)時間 99%響應(yīng)時間
Nginx 50 9755 8 22
Gateway 50 34727 2 5
簡單接口 50 24266 3 6
Gateway + 簡單接口 50 5500 17 45
Nginx + Gateway + 簡單接口 50 2100 30 53
首頁接口(單獨) 50 230 341 543
三級分類接口(嵌套循環(huán)查詢) 50 1(2,加索引后)(8,業(yè)務(wù)優(yōu)化后) 34300 38400
首頁全量數(shù)據(jù)(包括靜態(tài)資源渲染)(無Thymeleaf緩存) 50 68 947 1529
首頁全量數(shù)據(jù)(包括靜態(tài)資源渲染)(有Thymeleaf緩存) 50 72 819 1007
首頁全量數(shù)據(jù)(包括靜態(tài)資源渲染)(有Thymeleaf緩存、數(shù)據(jù)庫加索引、關(guān)日志) 50 100 731 1232
首頁全量數(shù)據(jù)(不包括靜態(tài)資源渲染)(有Thymeleaf緩存、數(shù)據(jù)庫加索引、關(guān)日志) 50 310 286 423
首頁全量數(shù)據(jù)(包括靜態(tài)資源渲染)(動靜分離) 50 20 3228 4778
首頁全量數(shù)據(jù)(包括靜態(tài)資源渲染)(動靜分離 + 增加內(nèi)存,增加新生代使用內(nèi)存(-Xmx1024m -Xms1024m -Xmn512m)(最大內(nèi)存,初始內(nèi)存,新生代內(nèi)存)) 50 25

我們可以直觀的看出來:單獨Gateway和單獨簡單接口都有較高的吞吐量,而兩者結(jié)合就會使性能大幅下降,故:中間件越多,系統(tǒng)性能損耗越大(主要損失在網(wǎng)絡(luò)IO上)

注意,此處的壓力測試是通過本機測本機的結(jié)果,這種結(jié)果不太具有參考價值,因為壓測的線程會和實際運行的線程發(fā)生競爭,使得結(jié)果偏差

在單獨的首頁中:主要的性能影響因素是DB操作以及Thymeleaf渲染

在三級分類接口中:主要的性能影響因素就是死亡一般的嵌套查詢操作以及DB操作文章來源地址http://www.zghlxwxcb.cn/news/detail-770308.html

到了這里,關(guān)于【性能優(yōu)化】一、使用JMeter進行壓力測試并進行簡單調(diào)優(yōu)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 性能測試-壓力測試-jmeter簡單實戰(zhàn)

    性能測試-壓力測試-jmeter簡單實戰(zhàn)

    壓力測試考察當前 軟硬件環(huán)境 下系統(tǒng) 所能承受的最大負荷并幫助找出系統(tǒng)瓶頸所在 。壓測都是為了系統(tǒng)在線上的 處理能力和穩(wěn)定性維持在一個標準范圍內(nèi) ,做到心中有數(shù)。 使用壓力測試,我們有希望發(fā)現(xiàn)找到很多種其他測試方法很難發(fā)現(xiàn)的錯誤。 有兩種錯誤類型是:內(nèi)

    2024年02月10日
    瀏覽(16)
  • JMeter分布式集群---部署多臺機器進行性能壓力測試

    JMeter分布式集群---部署多臺機器進行性能壓力測試

    有些時候,我們在進行壓力測試的時候,隨著模擬用戶的增加,電腦的性能(CPU,內(nèi)存)占用是非常大的,為了我們得到更加理想的測試結(jié)果,我們可以利用jmeter的分布式來緩解機器的負載壓力,分布到多臺機器同時運行。 1.Jmeter分布式執(zhí)行原理: 1、Jmeter分布式測試時,選擇

    2024年02月11日
    瀏覽(28)
  • 壓力測試:使用 JMeter 進行壓力測試

    壓力測試:使用 JMeter 進行壓力測試

    創(chuàng)建新目錄 jmeter_demo 在該目錄下打開命令行輸入: shell 復制代碼 go mod init jmeter_demo go mod tidy 隨后創(chuàng)建各目錄與文件如下: shell 復制代碼 -- jmeter_demo -- main main 函數(shù)目錄(啟動http和grpc服務(wù)) -- main.go -- proto grpc server 的目錄 -- chat.go -- chat.pb.gp -- chat.proto -- test_plan jmeter 測試計劃 --

    2024年04月16日
    瀏覽(20)
  • 使用JMeter 進行壓力測試

    使用JMeter 進行壓力測試

    Apache JMeter是Apache組織開發(fā)的基于Java的壓力測試工具。用于對軟件做壓力測試,它最初被設(shè)計用于Web應(yīng)用測試,但后來擴展到其他測試領(lǐng)域。 它可以用于測試靜態(tài)和動態(tài)資源,例如靜態(tài)文件、Java 小服務(wù)程序、CGI 腳本、Java 對象、數(shù)據(jù)庫、FTP 服務(wù)器, 等等。JMeter 可以用于對

    2024年02月16日
    瀏覽(21)
  • 使用Jmeter進行壓力測試

    參考地址: https://blog.cs

    2024年02月13日
    瀏覽(37)
  • 如何使用jmeter進行系統(tǒng)壓力測試?

    如何使用jmeter進行系統(tǒng)壓力測試?

    1.1 常用組件以及參數(shù)介紹 1.1.1 基本軟件 需準備一下工具 壓測工具: jmeter-2.13 服務(wù)器性能監(jiān)控:jmeter插件 ServerAgent-2.2.1 壓測時,直接使用jmeter模擬終端發(fā)起交易,jmeter可統(tǒng)計交易并發(fā);ServerAgent在服務(wù)器啟動agent,開放4444端口,jmeter通過agent獲取相關(guān)的服務(wù)器性能數(shù)據(jù),包括

    2024年02月07日
    瀏覽(24)
  • JMeter - 接口壓力測試工具簡單使用

    【啟動前配置】 啟動JMeter前可以先配置語言和編碼: 修改:E:JMeterapache-jmeter-5.5binjmeter.properties文件中: 1.language=en # 指定語言 language=zh_CN 2.sampleresult.default.encoding=ISO-8859-1 # 指定編碼 UTF-8 sampleresult.default.encoding=UTF-8 也可以啟動后設(shè)置語言:Options ?-- Choose language ?-- Chinese

    2024年02月12日
    瀏覽(23)
  • 如何使用Jmeter對WebSocket進行壓力測試

    如何使用Jmeter對WebSocket進行壓力測試

    01 環(huán)境準備 Jmeter對WebSocket協(xié)議的環(huán)境準備: 因為Jmeter本身不支持WebSocket協(xié)議的,所以需要安裝第三方的插件JMeterWebSocketSampler-1.0.2-SNAPSHOT.jar,并直接將這個jar包放到Jmeter軟件的libext目錄下。 查閱https://github.com/maciejzaleski/JMeter-WebSocketSampler/wiki/Dependencies看到,這個插件需要以

    2024年02月08日
    瀏覽(23)
  • JMeter系列4-使用JMeter進行壓力測試,計算吞吐量

    JMeter系列4-使用JMeter進行壓力測試,計算吞吐量

    1、隨著線程的增加,throughout不變了,再增加,只能延時增長了,說明已經(jīng)達到最大QPS 2、很好推斷,一個進程一次接口的響應(yīng)時間是500ms,那么一個進程的qps為2,四個進程的qps就是8 參考:https://blog.csdn.net/Le_1M/article/details/121105877 2.添加Constant Throughput Timer(常量吞吐量定時器)

    2023年04月08日
    瀏覽(21)
  • 使用jmeter的HLS插件進行流媒體的壓力測試

    使用jmeter的HLS插件進行流媒體的壓力測試

    目錄 一、準備 二、使用步驟 1.添加HLS插件 2.?示例 最近項目中開始做國標的項目,需要進行視頻流的壓力測試,在前端界面基本上最多也就是16宮格,想要測試更多的視頻流,就需要使用jmeter中的HLS Plugins來進行壓力測試(能自己寫腳本的更好),下面就是本人進行視頻流測

    2024年02月11日
    瀏覽(79)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包