jmeter 分散式壓力測試
當單機測試有侷限的時候,我們需要用多臺機器來做測試。 jmeter 分散式
當然我們需要用到之前已經安裝好的系統Centos7 安裝 jmeter,
這裡再次提醒大家使用 jmeter 版本是 3.3,重要的事情說三遍。
準備
分佈測試基本要求
- 所有系統上的防火牆需要關閉,並且對應的埠必須是開放的。
- 所有機器必須在同一子網段上。比如 一臺機器用 192.x.x.x 那麼另外的機器必須也是 192.x.x.x。
- 所有機器必須能夠互相訪問。
- 所用的 JMeter 和 Java 的版本需要是一樣的。
機器配置
需要 2 臺 slave 機器(Centos7), 一臺中控機器 (Window 10)
機器 | IP |
---|---|
master | 192.168.10.53 |
slave_1 | 192.168.8.14 |
slave_2 | 192.168.8.123 |
步驟
slave 配置
- 關閉防火牆
$ service firewalld stop $ service iptables stop
- 執行 jmeter-server
這裡只有一個地方需要注意, 我們需要指定一下 hostname 否則會報錯。
$ cd /usr/local/jmeter/bin $ ./jmeter-server -Djava.rmi.server.hostname=192.168.8.14
master 配置
-
新增遠端機器 IP
修改 bin 資料夾下的 jmeter.properties 檔案,
remote_hosts=192.168.8.14,192.168.8.123
# Remote Hosts - comma delimited remote_hosts=192.168.8.14,192.168.8.123 #remote_hosts=localhost:1099,localhost:2010
-
執行 jmeter UI 介面
直接點選 jmeter.bat 檔案, 因為在 window 下, linux 使用者可以執行 jmeter.sh
測試
執行
-
單臺執行
選擇 Remote start 選單
-
全部一起執行
選擇 Remote start all 選單
結果
- 在 slave 可以看到任務被執行
Created remote object: UnicastServerRef [liveRef: [endpoint:[192.168.8.123:59906](local),objID:[-3b632aff:168d21e3af0:-7fff, 7021558400555619249]]] Starting the test on host 192.168.8.123 @ Sat Feb 09 19:57:03 CST 2019 (1549713423638) Finished the test on host 192.168.8.123 @ Sat Feb 09 19:57:09 CST 2019 (1549713429469) Starting the test on host 192.168.8.123 @ Sat Feb 09 19:59:20 CST 2019 (1549713560420) Finished the test on host 192.168.8.123 @ Sat Feb 09 19:59:26 CST 2019 (1549713566724)
-
在 master 看到匯聚後的結果
給了 500 執行緒,但是我們可以看到統計結果是兩臺的合併 1000。