以壓力測試(通稱)來說 , 從單一主機對受測端進行施打 , 還是會受限於彼此之間的網路頻寬 / 主機效能 , 測出來的值不一定會達到受測端的極限 , 幸好 , JMeter 本身就有支援這樣多台施打的設計 , 而且 , 是透過派送任務的方式 , 啟動多台電腦開始對受測者進行測試 
在官方的文件介紹中 , 定義主要發派任務的機器為Master(有些人稱為Client) , 接收任務後開始工作的機器為Slave(Server) , 被測試的主機則稱為Target , 文件裡 , 有些地方又稱Slave為Client , 例如 : Start all clients , 看得時候要特別小心主從關係
以下整理幾個特點
  • 為了方便操作 , 可以只在Master安裝UI介面 , 而Slave只用Command模式
  • Master跟Slave可以在不同的網路環境 , 彼此只要IP+Port可以連得到即可 , 特別小心被防火牆阻擋
  • 執行的Script , 不需要個別複製到Slave機器 , Master會派送給它
  • 通常 , 1~2台Slave回送的資料 , 可能就會把Master的效能給吃光
  • Slave主機等級如果約是2-3Ghz CPU (recent cpu) , 大概可以處理 300-600 threads
  • 建議Master跟Slave要安裝同一版JMeter , Java也建議都用同一個版本
  • 當測試開始 , Slave會持續回傳Master測試結果 , 這會消耗一定的網路頻寬跟Master效能(解析來自Slave的Result) , 可以設定Mode去找尋比較平衡的方式
    15.4 Using a different sample sender : http://jmeter.apache.org/usermanual/remote-test.html#sendermode
開始啟動前 , 要先設定一下Master跟Slave的系統參數 , 確定他們知道彼此的位置 , 下述使用的Port也記得要測通先 ,i.g. telnet 192.168.0.112 90090

Master (192.168.0.115)
  1. 開啟- /bin/jmeter.properties , remote_hosts請把Slave主機(範例 : 192.168.0.112)的IP都加進來 , 用 “,” 隔開IP
  2. 設定client.rmi.localport , 意思是Master要開放哪一個Port給Slave回傳資料 , 這邊我用9090
  3. 設定server_port , Slave預計要開放給Master連線使用的Port , 這邊我也用9090
  4. 用正常模式打開Master的GUI介面 , 應該會看到一台主機顯示192.168.0.112 , 等Slave開啟後在點下去
Slave (192.168.0.112)
  1. 開啟- /bin/jmeter.properties
  2. 設定client.rmi.localport=9090 , 意思是回傳給Master的時候 , 該連他的哪一個Port (網站上沒說要設這個 , 但是我設了才通)
  3. 設定server.rmi.localport=9090 , 意思是本身準備用哪一個Port接收
  4. 啟動Slave模式 : JMETER_HOME/bin/jmeter-server (unix) or JMETER_HOME/bin/jmeter-server.bat (windows) 
  5. 啟動完成 , 會看到向下面這台一樣 , 開始監聽
  6. 當收到來自Master的呼叫 , 狀態會切換成這樣 , 就可以準備開始跑測試Script了

Leave a Reply

Your email address will not be published. Required fields are marked *