性能工具強大之處在於可支持分佈式運行方式,做爲性能測試工具的tsung也不例外,接下來搭建tsung的分佈式測試環境
tsung的分佈式環境搭建需要完成以下配置:
ssh無密登錄
集羣的機器之間必須要實現無密碼提示的ssh登錄
參與測試的機器中有一個是controller,其他都是tsung1、tsung2,集中控制的方式
- 在主機中進入ssh目錄
cd /root/.ssh
- 在主機中生成公鑰和私鑰
ssh-keygen -t rsa ##-t rsa可以省略,默認就是生成rsa類型的密鑰
注:命令執行後會有提示,輸入三次回車即可
執行完成後會在當前用戶的.ssh目錄下生成兩個文件:id_rsa、id_rsa.pub文件,前者時私鑰文件,後者是公鑰文件(拷貝到其他主機只需要拷貝這個文件的內容)
- 將公鑰複製到被登陸的主機上的 ~/.ssh/authorized_keys 文件中
ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.200.0.8
- 執行這條命令後會自動將登錄主機的公鑰文件內容追加至目標主機中指定用戶(root).ssh目錄下的authorized_keys文件中
- 也可以登錄被免密登陸的設備上創建authorized_keys文件並將公鑰追加到該文件
- 登陸
使用主機以root的身份登陸到客戶機中
ssh root@10.200.0.8
首次登錄將彈出保存信息,輸入yes即可,此時已經實現了免密的密鑰登陸
安裝版本確認
參與分佈式測試的所有機器安裝erlang和tsung的版本,儘量保持一致
注:erlang不同版本之間的差異比較大
防火牆確認
需要關閉所有測試機器的防火牆
可以通過service iptables stop關閉防火牆
主機名配置
如下配置信息時
<clients>
<client host="10.200.0.8" use_controller_vm="true" maxusers="1000" />
</clients>
出現報錯如下:
[root@benchmark-10-200-0-149 tsung-1.7.0]# tsung -f tsungws.xml start
Starting Tsung
Log directory is: /root/.tsung/log/20200424-2113
ERROR: client config: 'host' attribute must be a hostname, not an IP ! (was "10.200.0.8").
You can use -I <> option.
Config Error, aborting ! {error,badhostname}
原因是tsung通過主機名(而不是ip地址)互相登陸,解決辦法是通過主機名(而不是ip地址)遠程ssh登錄
在/etc/hosts中配置機器之間的名字解析,進入目錄
cd /etc/hosts
配置如下:
127.0.0.1 localhost
10.200.0.8 localhost8 # 分佈式被控制的主機名
10.200.0.149 localhost149 # 分佈式控制端主機名
所有的機器都要有類似這樣的配置
xml配置
分佈式需要配置xml中 clients的值,配置如下
<clients>
<client host="localhost8" maxusers="500" weight="1" cpu="3">
<ip value="10.200.0.8" />
</client>
</clients>
在控制端10.200.0.149
運行tsung腳本即可