Koa socket 泄露的问题
发布于 1 个月前 作者 ChangMM 963 次浏览 来自 问答

线上用的是 KOA 框架,但是最进发现有内存泄露的问题。

利用 losf -p 1441 // 1441 node 的进程 有大量如下的 无效 TCP连接

node    1441 root  633u     sock                0,7      0t0 1303582007 protocol: TCP
node    1441 root  634u     sock                0,7      0t0 1304269214 protocol: TCP
node    1441 root  635u     sock                0,7      0t0 1303710205 protocol: TCP
node    1441 root  636u     sock                0,7      0t0 1303582123 protocol: TCP
node    1441 root  637u     sock                0,7      0t0 1303775234 protocol: TCP
node    1441 root  638u     sock                0,7      0t0 1303610276 protocol: TCP
node    1441 root  639u     sock                0,7      0t0 1303611228 protocol: TCP
node    1441 root  640u     sock                0,7      0t0 1304141344 protocol: TCP
node    1441 root  641u     sock                0,7      0t0 1303660211 protocol: TCP
node    1441 root  642u     sock                0,7      0t0 1303661306 protocol: TCP
node    1441 root  643u     sock                0,7      0t0 1303661321 protocol: TCP
node    1441 root  644u     sock                0,7      0t0 1304409789 protocol: TCP
node    1441 root  645u     sock                0,7      0t0 1303661359 protocol: TCP
node    1441 root  646u     sock                0,7      0t0 1303560180 protocol: TCP

netstat -an | awk ‘/^tcp/ {++y[$NF]} END {for(w in y) print w, y[w]}’ // 该命令显示的连接情况是正常的

LAST_ACK 73
LISTEN 8
SYN_RECV 11
CLOSE_WAIT 8
ESTABLISHED 121
FIN_WAIT2 16
TIME_WAIT 73

但是利用 ss -s 命令 有大量closed 的连接 跟 losf 命令显示的数量级大概是一致的

Total: 1079 (kernel 1102)
TCP:   1061 (estab 121, closed 851, orphaned 74, synrecv 0, timewait 57/0), ports 0

Transport Total     IP        IPv6
1102      -         -
RAW	  0         0         0
UDP	  3         2         1
TCP	  210       37        173
INET	  213       39        174
FRAG	  0         0         0

有没有大佬知道什么原因?

回到顶部