MQTT 写入场景下大量 ESTABLISHED / TIME_WAIT 连接导致内存过载、操作超时问题 #6056
Answered
by
SteveYurongSu
SteveYurongSu
asked this question in
Q&A
-
使用 MQTT 协议向 IoTDB 写入一段时间后(通常是几天后),系统出现内存过高(无法GC)、各种请求操作超时问题。 通过以下指令看到
有大量 ESTABLISHED / TIME_WAIT 连接。
可以看到是 MQTT 的连接。 |
Beta Was this translation helpful? Give feedback.
Answered by
SteveYurongSu
May 27, 2022
Replies: 1 comment
-
可以尝试通过调整内核参数解决:
然后执行 配置说明: net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_fin_timeout=30 参考:https://blog.csdn.net/liuzhenwen/article/details/50245359 |
Beta Was this translation helpful? Give feedback.
0 replies
Answer selected by
SteveYurongSu
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
可以尝试通过调整内核参数解决:
然后执行
/sbin/sysctl -p
让参数生效。配置说明:
net.ipv4.tcp_syncookies = 1
表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
net.ipv4.tcp_tw_reuse = 1
表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle = 1
表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭;
net.ipv4.tcp_fin_timeout=30
修改系統默认的 TIMEOUT 时间。
参考:https://blog.csdn.net/liuzhenwen/article/details/50245359