jmeter(二十七)分布式壓測注意事項

2022-06-12 23:57:07 字數 3839 閱讀 6535

一、壓測機

1、數量&成本

無論是從成本角度還是維護的難易方面,壓測機的數量,適量就好。

舉個例子,8c16g的一台伺服器,部署jmeter後,根據我個人的測試比對資料,配置≤1500個執行緒數,最好。太多了效能損耗較大,延時高;太少了又浪費。

2、controller&agent

模擬的併發執行緒數超過5k,我個人建議留出一台做專門的controller機器,主要是避免agent機器資料上報帶來的影響(如果有其他的資料儲存+視覺化服務,可以忽略)。

3、服務授權

如果壓測啟動和服務配置都是root許可權,那麼在linux環境下,需要給jmeter和jmeter-server授權,命令為 chmod 777 jmeter ,授權後,顯示如下:

二、服務通訊

1、網路

所有的壓測機和被測服務,最好在同乙個網段內,盡可能減少時延問題(如果不在同乙個網段,就需要找運維建立專門的網路通道,這個很浪費)。

2、埠

在分布式壓測配置時,需要在controller機器的jmeter.properties檔案中配置agent機器的ip+埠,預設埠1099,如果該埠沒有被占用,則無需配置埠資訊,比如:

3、內網和公網

三、資料切割

壓測時候需要用到引數化資料,有些業務場景是需要先登入再進行操作的,或者某些資料具有唯一屬性。

在分布式壓測時候,需要注意,進行均勻的資料切割,確保每個請求的入參請求都是唯一的(可共用的引數不用切割)。

其實,在引數化資料準備階段,就應該考慮到這個問題,資料的可用性、唯一性以及數量級。

四、服務啟動

壓測機到位,服務授權配置好了,指令碼也寫好了,網路也沒問題,那麼如何在ngui模式(即linux環境)下啟動呢?

1、以服務形式啟動agent機

網上很多其他部落格都寫著利用命令 ./jmeter-server 啟動壓測服務,但這樣有個缺點,只要服務連線中斷,這個壓測服務就不可用了。

但是以後臺服務的形式啟動agent機器的jemter-server,就不用擔心服務不可用的問題,命令為 nohup sh jmeter-server & ,示意如下:

ps:注意,輸入如上命令後,需要回車兩次,然後通過命令,即可檢視服務是否啟動成功。

2、壓測啟動的2種方式

①、指定壓測機啟動,命令: ./jmeter -n -t /path/test.jmx -r 127.0.0.1,127.0.0.2 

②、啟動所有壓測機,命令: ./jmeter -n -t /path/test.jmx -r ,示意如下:

3、更多命令

apache-jmeter-使用者手冊:命令列選項列表

一、壓測機

1、數量&成本

無論是從成本角度還是維護的難易方面,壓測機的數量,適量就好。

舉個例子,8c16g的一台伺服器,部署jmeter後,根據我個人的測試比對資料,配置≤1500個執行緒數,最好。太多了效能損耗較大,延時高;太少了又浪費。

2、controller&agent

模擬的併發執行緒數超過5k,我個人建議留出一台做專門的controller機器,主要是避免agent機器資料上報帶來的影響(如果有其他的資料儲存+視覺化服務,可以忽略)。

3、服務授權

如果壓測啟動和服務配置都是root許可權,那麼在linux環境下,需要給jmeter和jmeter-server授權,命令為 chmod 777 jmeter ,授權後,顯示如下:

二、服務通訊

1、網路

所有的壓測機和被測服務,最好在同乙個網段內,盡可能減少時延問題(如果不在同乙個網段,就需要找運維建立專門的網路通道,這個很浪費)。

2、埠

在分布式壓測配置時,需要在controller機器的jmeter.properties檔案中配置agent機器的ip+埠,預設埠1099,如果該埠沒有被占用,則無需配置埠資訊,比如:

3、內網和公網

三、資料切割

壓測時候需要用到引數化資料,有些業務場景是需要先登入再進行操作的,或者某些資料具有唯一屬性。

在分布式壓測時候,需要注意,進行均勻的資料切割,確保每個請求的入參請求都是唯一的(可共用的引數不用切割)。

其實,在引數化資料準備階段,就應該考慮到這個問題,資料的可用性、唯一性以及數量級。

四、服務啟動

壓測機到位,服務授權配置好了,指令碼也寫好了,網路也沒問題,那麼如何在ngui模式(即linux環境)下啟動呢?

1、以服務形式啟動agent機

網上很多其他部落格都寫著利用命令 ./jmeter-server 啟動壓測服務,但這樣有個缺點,只要服務連線中斷,這個壓測服務就不可用了。

但是以後臺服務的形式啟動agent機器的jemter-server,就不用擔心服務不可用的問題,命令為 nohup sh jmeter-server & ,示意如下:

ps:注意,輸入如上命令後,需要回車兩次,然後通過命令,即可檢視服務是否啟動成功。

2、壓測啟動的2種方式

①、指定壓測機啟動,命令: ./jmeter -n -t /path/test.jmx -r 127.0.0.1,127.0.0.2 

②、啟動所有壓測機,命令: ./jmeter -n -t /path/test.jmx -r ,示意如下:

3、更多命令

apache-jmeter-使用者手冊:命令列選項列表

我的物聯網專案 二十七 分布式鎖粗心導致大量阻塞

error updating database.cause com.mysql.jdbc.exceptions.jdbc4.mysqltransactionrollbackexception lock wait timeout exceeded try restarting transaction ...

jmeter分布式壓測

在本機不足以支撐壓力測試時,可進行分布式壓測,使用其他的一台或多台機器進行壓測。本機為主控機,其他的機器 如他人電腦 或公司伺服器 為壓力機。jmeter分布式壓測的操作方法 1 其他的壓力機啟動jmeter server,如果本機也要做壓力機,則本機也需要啟動jmeter server。2 在主控...

Jmeter分布式壓測配置

有時候需要大併發的情況,不僅取決於伺服器配置,負載機配置也有要求,包括jmeter配置 場景一 負載機併發過高,cpu100 需要考慮分布式 場景二 負載機併發過高,jmeter滋生記憶體溢位,jmeter報錯 unable to create new native thread 關於場景二說到的問...