用JMeter測(cè)試emqx服務(wù)器性能

Apache JMeter是Apache組織開(kāi)發(fā)的基于Java的壓力測(cè)試工具。用于對(duì)軟件做壓力測(cè)試,它最初被設(shè)計(jì)用于Web應(yīng)用測(cè)試茴厉,但后來(lái)擴(kuò)展到其他測(cè)試領(lǐng)域掏缎。

JMeter是一個(gè)圖形化軟件喇完,用戶設(shè)置好test plan之后執(zhí)行,就可以測(cè)試服務(wù)器了。

由于我的阿里云不能圖形化,所以我在Linux以及本地windows上分別裝了JMeter:先用自己電腦設(shè)置好test plan千元,再上傳到阿里云服務(wù)器上運(yùn)行。

?JMeter安裝步驟

參考:JMeter測(cè)試EMQ集群

(JMeter是java寫的颤绕,所以安裝JMeter前要確保JDK是最新的幸海,我的JDK是1.8)

去官網(wǎng)下載二進(jìn)制文件壓縮包(不要下源代碼):Apache JMeter - Download Apache JMeter

注:關(guān)于binary和source,tgz和zip的區(qū)別:JMeter安裝時(shí)Binarys與Source奥务,tgz與zip如何選擇物独? - 五尐毛 - 博客園

不過(guò)其實(shí)windows下也能解壓tgz,Linux也能解壓zip氯葬。挡篓。。linux和windows用相同壓縮包的就行溢谤。

windows下JMeter安裝

建議對(duì)windows熟的(應(yīng)該大部分人都是操作windows比較熟練吧)先裝windows的瞻凤。裝好之后憨攒,Linux那邊直接重復(fù)相同步驟就可以世杀。

1. 解壓apache-jmeter-5.1.1.tgz

2. 下載JMeter中支持MQTT的插件

jmeter原生中沒(méi)有測(cè)試MQTT,因此必須加相關(guān)的插件jar包肝集。

GitHub - emqx/mqtt-jmeter: MQTT JMeter Plugin瞻坝,將Download/v1.0.1目錄下的mqtt-xmeter-1.0.1-jar-with-dependencies.jar下載下來(lái),然后放在你的jmeter文件夾lib/ext下。

3. 試試bin/jmeter.bat能不能正常打開(kāi)~

JMeter.bat的位置如圖

能正常打開(kāi)所刀、顯示圖形界面的話就OK了衙荐。

注:我有看到一些兩三年前的博客寫到,需要把JMeter加到系統(tǒng)環(huán)境變量浮创,但是我并沒(méi)有加也可以正常使用忧吟,現(xiàn)在應(yīng)該是不用更改環(huán)境變量了。

linux下JMeter安裝

1. 解壓apache-jmeter-5.1.1.tgz

tgz格式的壓縮包不能用unzip哦斩披。用 tar zxvf? apache-jmeter-5.1.1.tgz -C ./? 解壓到當(dāng)前目錄

(關(guān)于tgz解壓縮:在linux中如何解壓.tgz - 存錢罐 - 博客園

2. 同windows下安裝的第二步

圖方便的話溜族,直接把本地windows的lib/ext文件夾里mqtt-xmeter-1.0.1-jar-with-dependencies.jar上傳到Linux端的lib/ext即可。

3. 配置環(huán)境變量

vim etc/profile

增加如下內(nèi)容:

export PATH=/root/apache-jmeter-5.1.1/bin:$PATH

就像下面這張圖這樣:

改的時(shí)候要仔細(xì)垦沉,PATH寫錯(cuò)了補(bǔ)救可是很麻煩的哦

改完了別忘了執(zhí)行source /etc/profile


JMeter的安裝到這里就完成了煌抒。(真是比emqtt_benchmark簡(jiǎn)單多了)

?添加test plan

打開(kāi)windows的JMeter.bat,設(shè)置一個(gè)test plan

1. 添加線程組

2. 添加MQTT connect 測(cè)試

3. 相關(guān)設(shè)置

number of threads 線程數(shù):我設(shè)置了50000厕倍。因?yàn)榭吹接胁┛驼f(shuō)“1G內(nèi)存對(duì)應(yīng)6W設(shè)備連接”寡壮。

然鵝我最后線程數(shù)只達(dá)到了1W多(阿里云輕量服務(wù)器,1核CPU讹弯,2GB內(nèi)存)


1.?Server name or IP:?指向被測(cè)MQTT服務(wù)器地址况既。我也不太懂為什么127.0.0.1都可以

2.?Port number: TCP連接的端口是1883;SSL連接:8883闸婴。

3. MQTT vesion: EMQ X官網(wǎng)說(shuō)支持V3.1/V3.1.1坏挠。所以這里選3.1或者3.1.1都可以。

后面那個(gè)user name 和 password寫登陸emqx dashboard的那個(gè)

4.?

ClientId prefix:?標(biāo)識(shí)客戶端的固定前綴邪乍,每個(gè)連接(虛擬用戶)再添加一個(gè)uuid串降狠,整個(gè)作為客戶標(biāo)識(shí)。

Keep alive(s):?心跳信號(hào)發(fā)送間隔庇楞。例如榜配,300表示客戶端每隔300秒向服務(wù)器發(fā)出ping請(qǐng)求,以保持連接活躍吕晌。

Connection keep time(s):?連接建立后蛋褥,保持該連接的時(shí)長(zhǎng)。例如睛驳,1800表示1800秒之后連接將被關(guān)閉烙心,即使一直發(fā)送心跳信號(hào)。

Connect attempt max:?第一次連接過(guò)程中乏沸,嘗試重連的最大次數(shù)淫茵。超過(guò)該次數(shù)則認(rèn)為連接失敗。

Reconnect attempt max:?后繼連接過(guò)程中蹬跃,嘗試重連的最大次數(shù)匙瘪。超過(guò)該次數(shù)則認(rèn)為連接失敗。

(參考:https://blog.csdn.net/vicky_lov/article/details/84584334

設(shè)置完,保存為jmx格式即可丹喻。

?運(yùn)行test plan

jmeter -n -t /root/apache-jmeter-5.1.1/bin/test.jmx?

我最開(kāi)始報(bào)了這樣的錯(cuò):

Unable to get local host IP address.; nested exception is:

java.net.UnknownHostException: iZwz95j86y235aroi85ht0Z: iZwz95j86y235aroi85ht0Z: Name or service not known

解決方法:

vim /etc/hosts

#添加你的IP地址 以及剛剛報(bào)錯(cuò)信息里提到的這個(gè)用戶

例如? 123.456.789 iZwz95j86y235aroi85ht0Z

參考:JMeter接口壓力測(cè)試課程入門到高級(jí)實(shí)戰(zhàn)教程(詳情)-wx5ab8aabd3e73c的博客-51CTO博客

然后就可以運(yùn)行了薄货。

運(yùn)行的時(shí)候可以打開(kāi)dashboard查看,可以看到連接的client數(shù)量在噌噌噌的往上漲碍论。

如下圖所示谅猾,可以看到連接的峰值為11581,內(nèi)存為340M鳍悠。這個(gè)內(nèi)存好像是emq的節(jié)點(diǎn)根據(jù)當(dāng)前的線程數(shù)分配的赊瞬,線程增多,分配的內(nèi)存(圖中的total)就會(huì)相應(yīng)地增加(不過(guò)贼涩,免費(fèi)版emqx的內(nèi)存是有上限的)

但是我不太懂那個(gè)(used/available)巧涧,為啥是19111。

可以看到這個(gè)clientid和我們?cè)趖est plan中設(shè)置的一樣遥倦。這些client都是測(cè)試產(chǎn)生的谤绳。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市袒哥,隨后出現(xiàn)的幾起案子缩筛,更是在濱河造成了極大的恐慌,老刑警劉巖堡称,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瞎抛,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡却紧,警方通過(guò)查閱死者的電腦和手機(jī)桐臊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)晓殊,“玉大人断凶,你說(shuō)我怎么就攤上這事∥装常” “怎么了认烁?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)介汹。 經(jīng)常有香客問(wèn)我却嗡,道長(zhǎng),這世上最難降的妖魔是什么嘹承? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任窗价,我火速辦了婚禮,結(jié)果婚禮上赶撰,老公的妹妹穿的比我還像新娘舌镶。我一直安慰自己,他們只是感情好豪娜,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布餐胀。 她就那樣靜靜地躺著,像睡著了一般瘤载。 火紅的嫁衣襯著肌膚如雪否灾。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,692評(píng)論 1 305
  • 那天鸣奔,我揣著相機(jī)與錄音墨技,去河邊找鬼。 笑死挎狸,一個(gè)胖子當(dāng)著我的面吹牛扣汪,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播锨匆,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼崭别,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了恐锣?” 一聲冷哼從身側(cè)響起茅主,我...
    開(kāi)封第一講書(shū)人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎土榴,沒(méi)想到半個(gè)月后诀姚,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡玷禽,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年赫段,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片矢赁。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡瑞佩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出坯台,到底是詐尸還是另有隱情炬丸,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布蜒蕾,位于F島的核電站稠炬,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏咪啡。R本人自食惡果不足惜首启,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望撤摸。 院中可真熱鬧毅桃,春花似錦褒纲、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至读宙,卻和暖如春彻秆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背结闸。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工唇兑, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人桦锄。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓扎附,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親结耀。 傳聞我的和親對(duì)象是個(gè)殘疾皇子帕棉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容