使用bench工具使用指令 ./emqtt_bench sub --quic -h xxx-p 14567 -t t/test -c 10 创建了quic连接后一段时间自动断开,这个是emqx的机制吗?自动在连接空闲断开?能对这部分讲解一下吗?
=ERROR REPORT==== 10-Nov-2023::07:23:53.928468 ===
clientid: <<“emqx-cluster-0_bench_sub_3303836786_9”>>
down_info: #{error => 1,status => connection_idle}
msg: QUIC_transport_shutdown
这是连接空闲导致的自动关闭。
目前 emqttbench 还不支持设置空闲关闭时长。
但一般可以靠通过-k 设置 keepalive 保持连接。
我想咨询一下,正常情况下,设备侧会设置这种空闲关闭连接的操作吗?还是设备侧一般会保持连接
正常情况下,设备侧会设置这种空闲关闭连接的操作吗?还是设备侧一般会保持连接.
这个看设备所处的网络。
有用户设置很大的空闲超时, 几小时或者几天 来减少重连。
但是超长的空闲超时不意味着也保持超长的连接。 因为网络路径中的 网络中间节点比如 NAT 网关需要保活流量或者心跳来保证binding不超时。也就是说如果client和server都不关闭连接也不收发任何消息, NAT 网关会把这个binding超时删除。这样即使server 端再往client端发消息,消息也会被NAT 网关 丢弃。
因此 保活流量是有必要的且需根据实际网络设定。
在MQTT over QUIC 中,client端 我们建议使用设置MQTT 的keepalive机制 来保活。
再咨询一下您,bench里Start with 80 workers, addrs pool size: 1 and req interval: 800 ms 这个workers pool size 可以修改吗 我在介绍文档里没看到
Worker 个数是根据 核数 和 设置的 rate 算的。
你可以配置环境变量 来降低使用的核数
仅使用4核
ERL_FLAGS=”+S 4:4” emqtt_bench ….
注意 quic 协议栈仍然会使用所有核。
再问一下您,我在使用 -k 600000 了但是连接还是5分钟断开了这是什么原因呢
-k 600000 is 600000 secs.
try -k 180