EMQX 版本
EMQX 4.3.8
EMQX 安装部署方式
window zip解压
EMQX 集群情况
未使用集群,仅单节点
服务器(运行 EMQX 的机器)硬件配置
16核 40GB CPU 型号:Intel(R) Xeon(R) E-2278GE CPU @3.30GHz
服务器操作系统和平台
Windows
服务端参数优化情况
使用默认配置
压力机硬件配置
6核 32GB CPU 型号:Intel(R) Core™ i7-8750H CPU @2.20GHz
压力机使用的测试工具
mqttx-cli-win-x64
压力机参数优化情况
没设置
在 EMQX 中启用的功能
没用启用
测试场景
连接测试:一台压力机,每50毫秒的速度建立一万个连接。
消息发送和接收测试: 一台压力机,修改链接数和发送时间间隔,测试最大发送速率
具体问题
1、连接数设为1万,导致emqx 死机,必须重启。日志:
State machine <0.26313.15> terminating. Reason: system_limit. Stack: [{gen_statem,loop_state_callback_result,11,[{file,“gen_statem.erl”},{line,1360}]},{proc_lib,init_p_do_apply,3,[{file,“proc_lib.erl”},{line,226}]}]. Last event: {info,{inet_async,#Port<0.12>,8286,{error,system_limit}}}. State: {accepting,{state,‘mqtt:tcp’,{{0,0,0,0},1883},#Port<0.12>,inet_tcp,{{0,0,0,0},1883},{fun esockd_listener_sup:tune_socket/2,[[{tune_buffer,false}]]},,{listener,‘mqtt:tcp’,{{0,0,0,0},1883}},<0.485.0>,8286}}.
2023-11-09T11:14:12.275000+08:00 [error] crasher: initial call: esockd_acceptor:init/1, pid: <0.26313.15>, registered_name: , exit: {system_limit,[{gen_statem,loop_state_callback_result,11,[{file,“gen_statem.erl”},{line,1360}]},{proc_lib,init_p_do_apply,3,[{file,“proc_lib.erl”},{line,226}]}]}, ancestors: [<0.486.0>,<0.484.0>,esockd_sup,<0.159.0>], message_queue_len: 0, messages: , links: [<0.486.0>], dictionary: [{rand_seed,{#{jump => #Fun<rand.3.47293030>,max => 288230376151711743,next => #Fun<rand.5.47293030>,type => exsplus},[213986890727947748|3240440717214547]}}], trap_exit: false, status: running, heap_size: 6772, stack_size: 28, reductions: 8815; neighbours:
2023-11-09T11:14:12.275000+08:00 [error] Supervisor: {<0.486.0>,esockd_acceptor_sup}. Context: child_terminated. Reason: system_limit. Offender: id=acceptor,pid=<0.26313.15>.
2023-11-09T11:14:12.284000+08:00 [error] State machine <0.26314.15> terminating. Reason: system_limit. Stack: [{gen_statem,loop_state_callback_result,11,[{file,“gen_statem.erl”},{line,1360}]},{proc_lib,init_p_do_apply,3,[{file,“proc_lib.erl”},{line,226}]}]. Last event: {info,{inet_async,#Port<0.12>,8287,{error,system_limit}}}. State: {accepting,{state,‘mqtt:tcp’,{{0,0,0,0},1883},#Port<0.12>,inet_tcp,{{0,0,0,0},1883},{fun esockd_listener_sup:tune_socket/2,[[{tune_buffer,false}]]},,{listener,‘mqtt:tcp’,{{0,0,0,0},1883}},<0.485.0>,8287}}.
2、当发送速率在一万左右时, 报错:Error: Publish error: Receive Maximum exceeded;
日志:] Dropped the qos2 packet 64385 due to awaiting_rel is full.
注:接收端也是用mqttx-cli 。