EMQX 版本
5.0.21
EMQX 安装部署方式
安装包
EMQX 集群情况
单台机器
服务器(运行 EMQX 的机器)硬件配置
4核(vCPU) 16 GiB
服务器操作系统和平台
centos 8
服务端参数优化情况
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
see details in Linux系统常用内核网络参数介绍与常见问题处理_云服务器 ECS-阿里云帮助中心
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_slow_start_after_idle = 0
fs.file-max = 1048576
net.ipv4.ip_local_port_range = 1024 65535
允许最大并发连接数,重要
net.core.somaxconn = 32768
SYNC等待队列长度,适当,太大了排队也没用
net.ipv4.tcp_max_syn_backlog = 16384
ACCEPT等待队列长度,适当,太大了堆积也无用
net.core.netdev_max_backlog = 16384
TCP 缓冲区内存,连接数达到非常高时候需要配置好
#net.ipv4.tcp_mem = 786432 2097152 3145728
net.ipv4.tcp_rmem = 1024 4096 16777216
net.ipv4.tcp_wmem = 1024 4096 16777216
socket缓冲区默认值和最大值
net.core.wmem_default = 262144
net.core.rmem_default = 262144
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.optmem_max = 16777216
net.nf_conntrack_max = 1000000
net.netfilter.nf_conntrack_max = 1000000
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 30
net.ipv4.tcp_max_tw_buckets = 1048576
压力机硬件配置
本地电脑16g
压力机使用的测试工具
jemeter
压力机参数优化情况
在 EMQX 中启用的功能
未启用
测试场景
使用jemeter 做连接测试 1w次连接 只能成功5000次,最多连接1.6w,客户端频繁报错
在连接数达到1.6w时 ,在使用jemeter连接时异常率达到98%