我有一个我在NodeJS中编写的SOCKS5代理服务器.我正在利用本机net
和dgram
库来打开TCP和UDP套接字.
它工作正常约2天,所有CPU最大约30%.在没有重新启动的情况下2天后,一个CPU达到100%.之后,所有CPU轮流并一次保持100%的CPU.
我正在使用Cluster来创建实例,例如:
for (let i = 0; i < Os.cpus().length; i++) {
Cluster.fork();
}
Run Code Online (Sandbox Code Playgroud)
这是strace的输出,而cpu是100%:
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
99.76 0.294432 79 3733 epoll_pwait
0.10 0.000299 0 3724 24 futex
0.08 0.000250 0 3459 15 rt_sigreturn
0.03 0.000087 0 8699 write
0.01 0.000023 0 190 190 connect
0.01 0.000017 0 3212 38 read
0.00 0.000014 0 420 close
0.00 0.000008 0 612 180 recvmsg
0.00 …
Run Code Online (Sandbox Code Playgroud)