EMQ压力测试及系统优化(单机11万并发连接)
本文档主要记录一下在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万并发连接)相关推荐
- 100万并发连接服务器
100万并发连接服务器笔记之准备篇 前言 测试一个非常简单服务器如何达到100万(1M=1024K连接)的并发连接,并且这些连接一旦连接上服务器,就不会断开,一直连着. 环境受限,没有服务器,刚开始 ...
- [NewLife.Net]单机400万长连接压力测试
目标 对网络库NewLife.Net进行单机百万级长连接测试,并持续收发数据,检测网络库稳定性. [2020年8月1日晚上22点] 先上源码:https://github.com/NewLifeX/N ...
- 比特币现金压力测试结果:处理210万笔交易 费用不增反降
根据BitInfoCharts最新披露的分析数据显示,比特币现金(BCH)网络已经启动了压力测试,并且在9月1日承受了高达210万笔交易. 根据BCH压力测试网站称,本次"压力测试" ...
- Java并发压力测试数据库_百万并发压力测试-如何用Java编写纯并发压力测试
进口: 进口: 进口: 进口: 进口: 进口: 进口: 进口: 进口: 进口: 公共阶级{并发测试与压力测试. 私有静态int thread_num=200: 私有静态int client_num=4 ...
- 100万并发连接服务器笔记之准备篇
2019独角兽企业重金招聘Python工程师标准>>> 前言 测试一个非常简单服务器如何达到100万(1M=1024K连接)的并发连接,并且这些连接一旦连接上服务器,就不会断开,一直 ...
- 100万并发连接服务器笔记之处理端口数量受限问题
第二个遇到的问题:端口数量受限 一般来说,单独对外提供请求的服务不用考虑端口数量问题,监听某一个端口即可.但是向提供代理服务器,就不得不考虑端口数量受限问题了.当前的1M并发连接测试,也需要在客户端突 ...
- 100万并发连接服务器笔记之1M并发连接目标达成
第四个遇到的问题:tcp_mem 在服务端,连接达到一定数量,诸如50W时,有些隐藏很深的问题,就不断的抛出来. 通过查看dmesg命令查看,发现大量TCP: too many of orphaned ...
- 压力测试和系统优化tips
昨天有个朋友问题对mina是否有什么优化的资料,他这边一个系统压到500并发就上不去了,开始在看中国好声音,也没多想,直接说我这边没有.后来中间休息的时候,发现回答的有点问题,心里觉得其实应该告诉他压 ...
- 压力测试和系统优化的技巧
昨天有个朋友问题对mina是否有什么优化的资料,他这边一个系统压到500并发就上不去了,开始在看中国好声音,也没多想,直接说我这边没有.后来中间休息的时候,发现回答的有点问题,心里觉得其实应该告诉他压 ...
- EMQ压力测试工具emqtt-bench
下载emqtt-bench的两种方法 1.https://github.com/emqx/emqtt-bench 下载安装包解压上传 2.直接 git clone https://github.com ...
最新文章
- mybatis中(Oracle)关于insert时主键自动加1的使用方法
- python类装饰器应用_python之描述符应用与类的装饰器
- leetcode算法题--Jump Game II
- 【unity3d study ---- 麦子学院】---------- unity3d常用组件及分析 ---------- 控制角色在真实的环境中寻路...
- 40条提升编程技能的小妙招
- 前端学习(1440):实例选项el
- html5移动端制作知识点总结
- 《像程序员一样思考》
- 敏捷图书排行 (2011年修订)【转】
- [翻译]ElasticSearch官方文档-执行查询和过滤操作
- iOS设置圆角的四种方法
- Android PackageManagerService(三)pm命令安装流程详解
- 解读随着教育改革的深入steam教育
- linux内存高但是top进程不高,在Linux中通过Top运行进程查找最高内存和CPU使用率...
- gds文件 导出_将gds导入virtuoso以后,再将该gds导出,为什么元素顺序就变了?谢谢...
- Directory traversal in Spring framework漏洞修复
- 寻觅那款你心仪的国际象棋app
- python中encode和decode使用讲解与演示
- 深圳成为乌拉圭智慧城市解决方案输出地
- 万用表检测驻极体话筒好坏