天天看點

Jmeter遇到卡頓怎麼處理

在做并發測試時,遇到了設定持續時間,但是到達了持續時間後,一直不停止;線程組設定的資訊如下:

Jmeter遇到卡頓怎麼處理

從圖中線程組設定可以看出Jmeter需要開啟100個線程并且在300s内持續性的給後端伺服器發請求,運作後從右上角看到,已經運作超過了300s,但是線程一直沒有停止。

從jemeter.log 日志檢視不停的列印Stopping because end time detected by thread

Jmeter遇到卡頓怎麼處理
從網上查資料得知是因為某些線程被阻塞了,出現線程阻塞的原因是JMeter的所申請的記憶體不足導緻的,解決該問題有幾種方法:

  1. 調整腳本,可以通過調整并發數、減少斷言,盡量不要使用監聽器來減少額外的記憶體開銷
  2. 非GPU模式下運作Jmeter腳本
  3. 通過調整jmeter.bat 中記憶體參數

預設配置是:set HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=512m

根據實際情況進行修改heap 參數,我的是改成了

set HEAP=-Xms512m -Xmx1024m

注意:“Xms”(代表初始化堆棧記憶體的大小),“Xmx(代表最大記憶體池可以配置設定的大小)”

修改後,重新開機Jmeter。