ActiveMQ測試工具
阿新 • • 發佈:2017-06-01
aml 壓縮 install pub 結果 端口號 創建 ftw ipa
1. 測試工具
目前使用兩種測試工具進行壓力測試
1. Jmeter 測試單客戶端收發多主題,測試高並發,大數據量時的接收效率
2. emqtt_benchmark測試多客戶端收發主題,測試高吞吐量下服務器性能
1.1 安裝Erlang
emqtt_benchmark測試工具使用Erlang語言開發,必須在Linux的環境下運行,因此需要先安裝Erlang語言環境。
-
1.1.1 安裝Erlang
可以參考這篇帖子,使安裝別的特別簡單。 -
1.1.2 安裝問題
- 沒有安裝git,比如出現以下錯誤:
ERROR: Rebar requires version {1,5} or higher of git to process {git,"git://github.com/talentdeficit/jsx.git",{tag,"v0.9.0"}}
- 1
- 1
解決辦法:
下載安裝Git工具yum install git make clean make
- 沒有安裝git,比如出現以下錯誤:
-
- 不能下載Erlang,錯誤:
[root@localhost mqtt-test]# ./kerl build 18.3 18.3 Verifying archive checksum... Checksum error, check the files in /root/.kerl/archives
解決辦法:
刪除archives文件夾[root@localhost mqtt-test]# rm -rf /root/.kerl/archives
- 不能下載Erlang,錯誤:
1.2 emqtt_benchmark安裝使用
這是一個簡單的MQTT基準工具用Erlang編寫的。該工具的主要目的是基準測試MQTT服務器可以支持的並發連接數。官網下載
- 1.2.1 下載安裝
將下載下來的emqtt_benchmark-master.zip
放置一個目錄下,並解壓縮, 使用make進行編譯安裝
unzip emqtt_benchmark-master
cd emqtt_benchmark-master
ls
make -
1.2.2 訂閱命令
在目錄emqtt_benchmark-master
下執行命令:./emqtt_bench_sub --help
,結果如下:[[email protected] emqtt_benchmark-master]# ./emqtt_bench_sub --help Usage: emqtt_bench_sub [--help <help>] [-h [<host>]] [-p [<port>]] [-c [<count>]] [-i [<interval>]] [-t <topic>] [-q [<qos>]] [-u <username>] [-P <password>] [-k [<keepalive>]] [-C [<clean>]] [--ifaddr <ifaddr>] --help help information //服務器ip地址 -h, --host mqtt server hostname or IP address [default: localhost] //服務器端口號 -p, --port mqtt server port number [default: 1883] //最大連接客戶端數量 默認200 -c, --count max count of clients [default: 200] //客戶端連接間隔時間,默認10毫秒 -i, --interval interval of connecting to the broker [default: 10] //訂閱的主題 %i=自增長序號 -t, --topic topic subscribe, support %u, %c, %i variables //消息服務qos等級, //0=最多一次 服務器與 客戶端 交互1次 //1=至少一次 服務器與 客戶端 交互2次 //2=僅有一次 服務器與 客戶端 交互4次 -q, --qos subscribe qos [default: 0] //客戶端用戶名 -u, --username username for connecting to server //用戶端密碼 -P, --password password for connecting to server //維持客戶端活躍的時間 默認300秒 -k, --keepalive keep alive in seconds [default: 300] //客戶端斷開後是否清除session 默認true -C, --clean clean session [default: true] //代理ip接口 --ifaddr local ipaddress or interface address
-
舉例:創建1000個並發客戶端,並每秒接收100條消息頻率
./emqtt_bench_sub -c 1000 -i 10 -t bench/%i -q 2
-
1.2.3 發布命令
執行命令:./emqtt_bench_pub --help
,結果如下:[[email protected] emqtt_benchmark-master]# ./emqtt_bench_pub --help Usage: emqtt_bench_pub [--help <help>] [-h [<host>]] [-p [<port>]] [-c [<count>]] [-i [<interval>]] [-I [<interval_of_msg>]] [-u <username>] [-P <password>] [-t <topic>] [-s [<size>]] [-q [<qos>]] [-r [<retain>]] [-k [<keepalive>]] [-C [<clean>]] [--ifaddr <ifaddr>] --help help information -h, --host mqtt server hostname or IP address [default: localhost] -p, --port mqtt server port number [default: 1883] -c, --count max count of clients [default: 200] -i, --interval interval of connecting to the broker [default: 10] //客戶端發布消息的時間間隔 默認1000毫秒 -I, --interval_of_msg interval of publishing message(ms) [default: 1000] -u, --username username for connecting to server -P, --password password for connecting to server -t, --topic topic subscribe, support %u, %c, %i variables //消息字節大小 默認256字節 -s, --size payload size [default: 256] -q, --qos subscribe qos [default: 0] -r, --retain retain message [default: false] -k, --keepalive keep alive in seconds [default: 300] -C, --clean clean session [default: true] --ifaddr local ipaddress or interface address
-
舉例:創造10個客戶,每個客戶端發布消息的速度每秒100條,吞吐量1000條/秒
./emqtt_bench_pub -c 10 -I 10 -t bench/%i -s 256
1.3 Jmeter安裝使用
Apache JMeter是Apache組織開發的基於Java的壓力測試工具。下載
用於對軟件做壓力測試,它最初被設計用於Web應用測試,但後來擴展到其他測試領域。
ActiveMQ測試工具