文档章节

EMQ百万级MQTT消息服务(TLS压测和流量消耗)

喵了_个咪
 喵了_个咪
发布于 06/05 16:28
字数 498
阅读 722
收藏 14

在深入使用EMQ以及MQTT协议之后有一些心得和大伙分享一下

附上:

喵了个咪的博客:w-blog.cn EMQ官方地址:http://emqtt.com/ EMQ中文文档:http://emqtt.com/docs/v2/guide.html

1.流量消耗

我们知道在MQTT心跳的时候消耗为2字节,但是实际上测试下来60秒心跳间隔,一天花费了250KB流量,平均下来一次心跳0.17KB,要是使用了证书每天消耗有470KB左右一次心跳0.32KB左右

这貌似和所谓的最小2b的心跳大小不符合呀,随后笔者拜托了测试同事进行了抓包发现一次心跳会有三个阶段,ping->pone->ack 关于这三个阶段的消耗如下

PS : 结论貌似是这样的,笔者也是小白不太清楚具体的原因希望有大神能够解答一下

TLS证书带来的消耗

关于另外一个问题就是TLS,使用TLS当然能带来很多好处,最直接的就是安全度提高了,但是在使用之前要考虑清楚TLS带来的消耗:

  • 第一是流量上的消耗,心跳包几乎翻了倍
  • 第二就是性能上 TCP 1G内存可以维持5W的链接数,使用TLS 1G内存只能维持1.5W左右的链接数

以下是笔者压测TLS的结果

  • 12W链接 8GB内存消耗
  • 15W链接 CPU维持利用率在 100% ~ 150%
  • 25W链接 12GB内存消耗
  • 每秒链接速度 3000/S 4核心剩余20%空闲

以下是对应的页面是25W TLS链接的消耗

还有一些小问题

  • 如果EMQ重启 作为服务端虽然能够连上,但是对 topic 订阅丢失
  • 使用K8S部署 无法突破65536限制, 最大连接数被限制到65536

© 著作权归作者所有

共有 人打赏支持
喵了_个咪
粉丝 262
博文 144
码字总数 185422
作品 4
杨浦
技术主管
加载中

评论(5)

威-仔
威-仔

引用来自“威-仔”的评论

抓包工具是什么呀:relieved:

引用来自“喵了_个咪”的评论

使用的 WireShark
ok
喵了_个咪
喵了_个咪

引用来自“节节草”的评论

现在都在说TCP连接达到十万、百万,其实加了业务,远达不到这个量级。
TCP 是比较困难因为夹杂了业务的逻辑等等,但是EMQ不同,他只是一个承载链接的服务不关心业务只提供具体的功能,加上可以集群对于百万级别的链接数量没有太大的问题
银杏果果
银杏果果
现在都在说TCP连接达到十万、百万,其实加了业务,远达不到这个量级。
喵了_个咪
喵了_个咪

引用来自“威-仔”的评论

抓包工具是什么呀:relieved:
使用的 WireShark
威-仔
威-仔
抓包工具是什么呀:relieved:
EMQ 2.0.6 发布, 百万级 MQTT 消息服务器

EMQ 2.0.6 版本发布,2.0最后一个维护版本。EMQ 是采用 Erlang/OTP 平台开发,全面支持 MQTT V3.1.1 协议,支持集群和百万级连接的开源 MQTT 消息服务器。 更新内容: 升级esockd库到v4.1.1版...

emqtt
2017/01/09
2.6K
3
EMQ 2.1.0-beta.1 发布, 百万级 MQTT 消息服务器

EMQ v2.1.0-beta.1 版本正式发布。 改进Session/Inflight窗口设计,一个定时器负责全部Inflight QoS1/2消息重传。优化MQTT连接的GC机制,降低高消息吞吐情况下的CPU/内存占用。 EMQ 2.1.0版本...

emqtt
2017/02/24
1K
4
EMQ 2.2-beta.1 发布, 百万级 MQTT 消息服务器

EMQ 2.2-beta.1版本正式发布。 EMQ 2.2正式支持MQTT协议多监听器配置,支持HAProxy的Proxy Protocol V1/V2。新增Web Hook插件(emq-web-hook)、Lua Hook插件(emq-lua-hook)。 MQTT协议监听器配...

emqtt
2017/05/08
2.3K
6
EMQ 2.3-beta.1 发布, 百万级 MQTT 消息服务器

EMQ R2.3-beta.1版本发布!该版本正式支持集群节点自动发现与集群脑裂自动愈合,支持基于IP Multicast、Etcd、Kubernetes等多种策略自动构建集群。 节点发现与自动集群 EMQ R2.3 版本支持多种...

emqtt
2017/07/25
1K
4
EMQ百万级MQTT消息服务(分布式集群)

在强大的单机也比不上集群,EMQ的集群模式很粗暴,只需要把EMQ服务关联在一起然后负载均衡就可以达到集群的效果,这样就算面对1000CK问题也迎刃而解 附上: 喵了个咪的博客:w-blog.cnEMQ官方地址...

喵了_个咪
04/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

中秋快乐!!!

HiBlock
17分钟前
0
0
Node安装教程

1、安装最新版的node 2、设置相关目录(以D盘为例) 分别建立目录:D:\node,D:\node\node-globa,D:\node\node-cache 命令行输入: // 设置npm国内镜像 npm config set registry https://re...

Mohan710
45分钟前
1
0
中国发布域名系统基础软件 “红枫”

9月12日消息,域名工程中心(英文缩写 ZDNS)发布了宣称自主开发的域名系统基础软件 “红枫(Maple DNS)”。 9月12日消息,域名工程中心(英文缩写 ZDNS)发布了宣称自主开发的域名系统基础软...

问题终结者
今天
1
0
Shell编程(分发系统介绍、expect远程登录、expect远程执行命令、expect传递参数)

分发系统介绍expect 分发系统expect即分发脚本,是一种脚本语言;通过他可以实现传输,输入命令(上线代码) 应用场景:业务越来越大,网站app,后端,编程语言是php,所以就需要配置lamp或者...

蛋黄_Yolks
今天
2
0
Java Http请求工具类

public static String httpPost(String source, String params) {URL url = null;HttpURLConnection conn = null;OutputStream os = null;String ret = null;try {......

yuewawa
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部