安装emqtt_benchmark-以失败告终

2019-08-06  本文已影响0人  Jessieee_Y

为了对我的阿里云轻量服务器进行性能测试,我尝试了UnixBtt-ench和emqttd_benchmark。

Unixbench是一款开源的,适用于Linux的, 测试VPS性能的软件,测试的性能包括CPU,内存,磁盘,操作系统等等。每项测完会给出一个分值,全部测试完大概10-30分钟,最后给出一个总分,通过分数可以很方便地衡量比较VPS的性能。

装Unixbench以及运行的过程很顺利。

接下来安装emqtt_benchmark的过程就很坎坷了。

emqtt_benchmark是emq自带的,用于测试emq服务器性能的一个工具。

1. 首先修改emq的配置文件

参考:EMQ百万级MQTT消息服务(优化和压测)这篇文章的第一步。(我参考的这篇文章是18年写的,当时还是v2,老版本的emq,和现在新版本的emqx有一些差别)吸取了上次用sublime修改emqx.conf的教训,这次直接命令行vim编辑,虽然有点别扭。

2. 安装erlang/OTP

一定要安装最新版,越新越好。最开始我就按照上面这篇csdn教的,下的版本是19,结果编译emqtt-benchmark的时候就报错了,说我OTP当前装的是v19, 必须要v21以上。

erlang的安装也是很复杂,首先介绍一下什么是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.

摘自官网:Erlang Programming Language

网上有人说可以在官网上下好安装包,解压缩、安装,但是我试了没成功。最后我是用以下的命令装的:

    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环境变量

    vim /etc/profile

    export ERLPATH=/usr/local/erlang

    export PATH=$ERLPATH/bin:$PATH

    source /etc/profile

4. 安装rebar3

这一步也是我自己失误之后的教训,如果不装rebar3直接安装emqtt_benchmark,在make的时候会报错。

后来也是看了github上别人的问题才解决了: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  #这个地址和原来老版的emqtt不一样了!

    cd /app/install/emqtt_benchmark/emqtt_bench

    make      

    ## 调整系统参数并且开始压测

    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

然后。。。还是有问题。。。

我make成功之后,运行./emqtt_bench sub -c 50000 -i 10 -t bench/%i -q 2报错

百度、谷歌都搜了也没有相关的解决方法。我只能自己在github上问了!希望有人回复吧

escript: exception error: undefined function counters:new/2 · Issue #58 · emqx/emqtt-bench · GitHub

今天依然是连个压力测试都没完成的🐏。

上一篇下一篇

猜你喜欢

热点阅读