Jmeter 是java 應用,對於CPU和內存的消耗比較大,因此,當需要模擬數以千計的併發用戶時,使用單臺機器模擬所有的併發用戶就有些力不從心,甚至會引起JAVA內存溢出錯誤。爲了讓jmeter工具提供更大的負載能力,jmeter短小精悍一有了使用多臺機器同時產生負載的機制。我們通過單個jmeter 客戶端就可以控制多個遠程的jmeter服務器,使它們同步的對服務器進行壓力測試。
通過遠程運行jmeter,測試人員可以跨越多臺低端計算機複製測試,這樣就可以模擬一個比較大的服務器壓力,一個jmeter客戶端實例,理論上可以控制任意多的遠程jmeter實例,並通過他們收集測試數據。這樣一樣,就有了如下特性:
* 保存測試採樣數據到本地機器
* 通過單臺機器管理多個jmeter執行引擎。
* 沒有必要將測試計劃複製到每一臺機器,jmeter GUI客戶端會將它發往每一臺jmeter服務器。
* 每一臺jmeter遠程服務器都執行相同的測試計劃,jmeter不會在執行期間做負載均衡,每一臺服務器都會完整地運行測試計劃。
使用多臺機器產生負載的操作步驟如下:
(1)agent的機子關閉防火牆
(2)在所有期望運行jmeter作爲 負載生成器的機器上安裝jmeter, 並確定其中一臺機器作爲 controller ,其他的的機器作爲agent 。
(3) 運行所有 agent 機器上的jmeter-server 文件(假定使用兩臺機器192.168.x.x 和192.168.xx.xx 作爲agent)
(4)在controller機器的jmeter的bin目錄下,找到jmeter.properties 文件,編輯該文件:
查找:
remote_hosts=127.0.0.1
修改爲:
remote_hosts=192.168.x.x:1099,192.168.xx.xx:1099
(4)啓動controller 機子上的jmeter應用jmeter.bat,選擇菜單“運行”--->“遠程啓動”,來分別啓動agent ,也可以直接選擇“遠程全部啓動”來將所有的agent啓動。