為了對(duì)我的阿里云輕量服務(wù)器進(jìn)行性能測(cè)試,我嘗試了UnixBtt-ench和emqttd_benchmark。
Unixbench是一款開源的,適用于Linux的, 測(cè)試VPS性能的軟件,測(cè)試的性能包括CPU,內(nèi)存,磁盤,操作系統(tǒng)等等。每項(xiàng)測(cè)完會(huì)給出一個(gè)分值,全部測(cè)試完大概10-30分鐘,最后給出一個(gè)總分,通過(guò)分?jǐn)?shù)可以很方便地衡量比較VPS的性能。
裝Unixbench以及運(yùn)行的過(guò)程很順利。
接下來(lái)安裝emqtt_benchmark的過(guò)程就很坎坷了。
emqtt_benchmark是emq自帶的,用于測(cè)試emq服務(wù)器性能的一個(gè)工具。
1. 首先修改emq的配置文件
參考:EMQ百萬(wàn)級(jí)MQTT消息服務(wù)(優(yōu)化和壓測(cè))這篇文章的第一步。(我參考的這篇文章是18年寫的,當(dāng)時(shí)還是v2,老版本的emq,和現(xiàn)在新版本的emqx有一些差別)吸取了上次用sublime修改emqx.conf的教訓(xùn),這次直接命令行vim編輯,雖然有點(diǎn)別扭。
2. 安裝erlang/OTP
一定要安裝最新版,越新越好。最開始我就按照上面這篇csdn教的,下的版本是19,結(jié)果編譯emqtt-benchmark的時(shí)候就報(bào)錯(cuò)了,說(shuō)我OTP當(dāng)前裝的是v19, 必須要v21以上。
erlang的安裝也是很復(fù)雜,首先介紹一下什么是erlang,什么是OTP:
Erlang is a programming language used to build massively scalable soft real-time systems with requirements on high availability. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? OTP is set of Erlang libraries and design principles providing middle-ware to develop these systems.
摘自官網(wǎng):Erlang Programming Language
網(wǎng)上有人說(shuō)可以在官網(wǎng)上下好安裝包,解壓縮、安裝,但是我試了沒(méi)成功。最后我是用以下的命令裝的:
????wget http://erlang.org/download/otp_src_21.0.tar.gz?
????tar -xvzf otp_src_21.0.tar.gz?
????cd otp_src_21.0?
????./configure --prefix=/usr/local/erlang --with-ssl -enable-threads -enable-smmp-support -enable-kernel-poll --enable-hipe --without-javac
????make && make install
3. 配置erl環(huán)境變量
????vim /etc/profile
????export ERLPATH=/usr/local/erlang
????export PATH=$ERLPATH/bin:$PATH
????source /etc/profile
4. 安裝rebar3
這一步也是我自己失誤之后的教訓(xùn),如果不裝rebar3直接安裝emqtt_benchmark,在make的時(shí)候會(huì)報(bào)錯(cuò)。
后來(lái)也是看了github上別人的問(wèn)題才解決了:Hello, I can't compile this. · Issue #45 · emqx/emqtt-bench · GitHub
安裝rebar3 :
? ? git clone https://github.com/erlang/rebar3.git
????cd rebar3
????./bootstrap
????./rebar3 local install
5. 安裝emqtt_benchmark
????yum -y install git
????cd /app/install/emqtt_benchmark
????git clone https://github.com/emqx/emqtt-bench.git? #這個(gè)地址和原來(lái)老版的emqtt不一樣了!
????cd?/app/install/emqtt_benchmark/emqtt_bench
? ? make ? ? ?
????## 調(diào)整系統(tǒng)參數(shù)并且開始?jí)簻y(cè)
????sysctl -w net.ipv4.ip_local_port_range="500 65535"
????echo 1000000 > /proc/sys/fs/nr_open
????ulimit -n 1000000
????./emqtt_bench sub -h 192.168.2.111 -c 32219 -i 1 -t bench /%i -q 2
然后。。。還是有問(wèn)題。。。
我make成功之后,運(yùn)行./emqtt_bench sub -c 50000 -i 10 -t bench/%i -q 2報(bào)錯(cuò)
百度、谷歌都搜了也沒(méi)有相關(guān)的解決方法。我只能自己在github上問(wèn)了!希望有人回復(fù)吧
escript: exception error: undefined function counters:new/2 · Issue #58 · emqx/emqtt-bench · GitHub
今天依然是連個(gè)壓力測(cè)試都沒(méi)完成的??。