• EMQ ---100万线连接测试说明


    注解

    EMQ 2.0 消息服务器默认设置,允许最大客户端连接是512,因为大部分操作系统 ‘ulimit -n’ 限制为1024。

    EMQ 消息服务器1.1.3版本,连接压力测试到130万线,8核心/32G内存的 CentOS 云服务器。

    操作系统内核参数、TCP 协议栈参数、Erlang 虚拟机参数、EMQ 最大允许连接数设置简述如下:

    Linux 操作系统参数

    # 2M - 系统所有进程可打开的文件数量:

    sysctl -w fs.file-max=2097152
    sysctl -w fs.nr_open=2097152
    

    # 1M - 系统允许当前进程打开的文件数量:

    ulimit -n 1048576
    

    TCP 协议栈参数

    # backlog - Socket 监听队列长度:

    sysctl -w net.core.somaxconn=65536
    

    Erlang 虚拟机参数

    emqttd/etc/emq.conf:

    ## Erlang Process Limit
    node.process_limit = 2097152
    
    ## Sets the maximum number of simultaneously existing ports for this system
    node.max_ports = 1048576
    

    EMQ 最大允许连接数

    emqttd/etc/emq.conf ‘listeners’段落:

    ## Size of acceptor pool
    listener.tcp.external.acceptors = 64
    
    ## Maximum number of concurrent clients
    listener.tcp.external.max_clients = 1000000
    

    测试客户端设置

    测试客户端在一个接口上,最多只能创建65000连接:

    sysctl -w net.ipv4.ip_local_port_range="500 65535"
    
    echo 1000000 > /proc/sys/fs/nr_open
    

    按应用场景测试

    MQTT 是一个设计得非常出色的传输层协议,在移动消息、物联网、车联网、智能硬件甚至能源勘探等领域有着广泛的应用。1个字节报头、2个字节心跳、消息 QoS 支持等设计,非常适合在低带宽、不可靠网络、嵌入式设备上应用。

    不同的应用有不同的系统要求,用户使用emqttd消息服务器前,可以按自己的应用场景进行测试,而不是简单的连接压力测试:

    1. Android 消息推送: 推送消息广播测试。
    2. 移动即时消息应用: 消息收发确认测试。
    3. 智能硬件应用: 消息的往返时延测试。
    4. 物联网数据采集: 并发连接与吞吐测试。

    开源 MQTT 客户端项目

    GitHub: https://github.com/emqtt

    emqttc Erlang MQTT客户端库
    emqtt_benchmark MQTT连接测试工具
    CocoaMQTT Swift语言MQTT客户端库
    QMQTT QT框架MQTT客户端库

    Eclipse Paho: https://www.eclipse.org/paho/

    MQTT.org: https://github.com/mqtt/mqtt.github.io/wiki/libraries

  • 相关阅读:
    CUDA从入门到精通
    [Network] 计算机网络基础知识总结
    第三章 需求工程概论
    jsp学习
    算法——递推算法
    大话设计模式读书笔记--文章汇总
    轻松学SQL Server数据库
    Oracle数据库建表+添加数据练习
    《C#图解教程》 总览
    php发送get、post请求的6种方法简明总结
  • 原文地址:https://www.cnblogs.com/saryli/p/9729326.html
Copyright © 2020-2023  润新知