本文档主要记录一下在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:$PATHsource /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万多的并发连接:

EMQ压力测试及系统优化(单机11万并发连接)相关推荐

  1. 100万并发连接服务器

    100万并发连接服务器笔记之准备篇 前言 测试一个非常简单服务器如何达到100万(1M=1024K连接)的并发连接,并且这些连接一旦连接上服务器,就不会断开,一直连着.  环境受限,没有服务器,刚开始 ...

  2. [NewLife.Net]单机400万长连接压力测试

    目标 对网络库NewLife.Net进行单机百万级长连接测试,并持续收发数据,检测网络库稳定性. [2020年8月1日晚上22点] 先上源码:https://github.com/NewLifeX/N ...

  3. 比特币现金压力测试结果:处理210万笔交易 费用不增反降

    根据BitInfoCharts最新披露的分析数据显示,比特币现金(BCH)网络已经启动了压力测试,并且在9月1日承受了高达210万笔交易. 根据BCH压力测试网站称,本次"压力测试" ...

  4. Java并发压力测试数据库_百万并发压力测试-如何用Java编写纯并发压力测试

    进口: 进口: 进口: 进口: 进口: 进口: 进口: 进口: 进口: 进口: 公共阶级{并发测试与压力测试. 私有静态int thread_num=200: 私有静态int client_num=4 ...

  5. 100万并发连接服务器笔记之准备篇

    2019独角兽企业重金招聘Python工程师标准>>> 前言 测试一个非常简单服务器如何达到100万(1M=1024K连接)的并发连接,并且这些连接一旦连接上服务器,就不会断开,一直 ...

  6. 100万并发连接服务器笔记之处理端口数量受限问题

    第二个遇到的问题:端口数量受限 一般来说,单独对外提供请求的服务不用考虑端口数量问题,监听某一个端口即可.但是向提供代理服务器,就不得不考虑端口数量受限问题了.当前的1M并发连接测试,也需要在客户端突 ...

  7. 100万并发连接服务器笔记之1M并发连接目标达成

    第四个遇到的问题:tcp_mem 在服务端,连接达到一定数量,诸如50W时,有些隐藏很深的问题,就不断的抛出来. 通过查看dmesg命令查看,发现大量TCP: too many of orphaned ...

  8. 压力测试和系统优化tips

    昨天有个朋友问题对mina是否有什么优化的资料,他这边一个系统压到500并发就上不去了,开始在看中国好声音,也没多想,直接说我这边没有.后来中间休息的时候,发现回答的有点问题,心里觉得其实应该告诉他压 ...

  9. 压力测试和系统优化的技巧

    昨天有个朋友问题对mina是否有什么优化的资料,他这边一个系统压到500并发就上不去了,开始在看中国好声音,也没多想,直接说我这边没有.后来中间休息的时候,发现回答的有点问题,心里觉得其实应该告诉他压 ...

  10. EMQ压力测试工具emqtt-bench

    下载emqtt-bench的两种方法 1.https://github.com/emqx/emqtt-bench 下载安装包解压上传 2.直接 git clone https://github.com ...

最新文章

  1. mybatis中(Oracle)关于insert时主键自动加1的使用方法
  2. python类装饰器应用_python之描述符应用与类的装饰器
  3. leetcode算法题--Jump Game II
  4. 【unity3d study ---- 麦子学院】---------- unity3d常用组件及分析 ---------- 控制角色在真实的环境中寻路...
  5. 40条提升编程技能的小妙招
  6. 前端学习(1440):实例选项el
  7. html5移动端制作知识点总结
  8. 《像程序员一样思考》
  9. 敏捷图书排行 (2011年修订)【转】
  10. [翻译]ElasticSearch官方文档-执行查询和过滤操作
  11. iOS设置圆角的四种方法
  12. Android PackageManagerService(三)pm命令安装流程详解
  13. 解读随着教育改革的深入steam教育
  14. linux内存高但是top进程不高,在Linux中通过Top运行进程查找最高内存和CPU使用率...
  15. gds文件 导出_将gds导入virtuoso以后,再将该gds导出,为什么元素顺序就变了?谢谢...
  16. Directory traversal in Spring framework漏洞修复
  17. 寻觅那款你心仪的国际象棋app
  18. python中encode和decode使用讲解与演示
  19. 深圳成为乌拉圭智慧城市解决方案输出地
  20. 万用表检测驻极体话筒好坏

热门文章

  1. 推荐两个适合程序员接国外私单的网站
  2. python写excel,请大表哥喝杯茶
  3. 模型实践 | Alphafold 蛋白质结构预测
  4. 快速将视频分解成一帧帧的图片
  5. HTML-CSS-JS实现卫龙辣条旗舰店网页
  6. 精简的webservice例子
  7. 计算机桌面图标多一个箭头,怎么去掉电脑桌面图标箭头(一个小妙招解决win图标小箭头)...
  8. Android图片处理(Matrix,ColorMatrix,深入讲解Android
  9. 【Unity】3D雷霆战机
  10. destoon新增模块