本檔案主要記錄一下在EMQ壓力測驗中遇到的一些問題和猜想,如有錯誤還請指正…
一、準備作業
emqtt_bench壓力測驗工具
安裝部署參考官網:https://docs.emqx.net/broker/latest/cn/tutorial/benchmark.html
1)、首先安裝依賴環境 Erlang/OTP 21.2:
## 安裝erlang虛擬機
yum -y install ncurses-devel openssl-devel unixODBC-devel gcc-c++
cd /opt
wget http://erlang.org/download/otp_src_21.2.tar.gz
tar -zxvf otp_src_21.2.tar.gz
cd otp_src_21.2
./configure --prefix=/usr/local/erlang --with-ssl -enable-threads -enable-smmp-support -enable-kernel-poll --enable-hipe --without-javac
make && make install
2)、配置環境變數
vim /etc/profile
# erlang
export ERLPATH=/usr/local/erlang
export PATH=$ERLPATH/bin:$PATH
source /etc/profile
3)、驗證是否安裝成功
[root@node03 emqtt_benchmark]# erl
Erlang/OTP 21 [erts-10.2] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] [hipe]
Eshell V10.2 (abort with ^G)
1>
4)、安裝emqtt_benchmark
yum -y install git
cd /opt
git clone https://github.com/emqtt/emqtt_benchmark.git
cd emqtt_benchmark
make
Git存在問題的請參考:
(1)、Git原始碼安裝
(2)、unable to access ‘https://github.com/xxxx/xxxx’: SSL connect error
二、壓力測驗
EMQ部署完成之后,在沒有任何優化的情況下,一開始做壓力測驗,并發連接始終維持在28000左右,后來部署集群(3臺)之后,使用負載均衡,三臺集群并發連接總和也是無法突破28000的并發連接,并發連接始終卡在28000,因此推測是某個地方的配置限制了,因此進行系統優化,
## 調整系統引數并且開始壓測
sysctl -w net.ipv4.ip_local_port_range="1000 65535"
echo 1000000 > /proc/sys/fs/nr_open
ulimit -n 1000000
./emqtt_bench sub -h 192.168.72.141 -c 100000 -p 1883 -i 1 -t bench /%i -q 1
三、系統優化
系統優化整體仍是參考官網:https://docs.emqx.net/broker/latest/cn/tutorial/tune.html
調優之后,單機并發接入達到64505,
使用負載均衡測驗3臺集群,并發接入總和也是64505,
我們知道單臺服務器最多開放6萬多個埠號,在上述的系統優化配置設定了埠的范圍
net.ipv4.ip_local_port_range='1000 65535'
因此埠號的個數為64535個,除去系統中的一些應用使用的埠(推測大概就是30個),所以優化后的并發接入始終無法突破64505,
因此要想繼續進行壓力測驗,需要增加壓力機,推測兩臺壓力機測驗單機并發會突破64505,至于具體能夠達到多少,則是由emq broker的性能和優化程度決定,
未完待續…
…
增加:
四、增加壓力機繼續測驗
以上猜想基本得到了驗證,增加一臺壓力測驗機,兩臺壓力測驗機,跑出了11萬多的并發連接:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/108690.html
標籤:其他
