Open takenliu opened 6 months ago
现象: 1.进程持有较多的socket句柄没有释放,通过下面的命令统计,结果为几个到几万个不等。 $ lsof -p $pid -K|grep "protocol: TCP"|wc -l 2.即使业务请求量很低的时候,可能消耗cpu单个核的100%。 top命令:%CPU 100.0 同时通过perf命令查看,主要消耗在于NetworkAsio::timeoutProcess()函数。
结论: 2.5.0版本有出现句柄泄露的bug。泄露的前提是,客户端刚创建了连接,还没发送任何请求,就立即close了。这种情况下,服务端有一定的概率会出现NetSession对象的泄露。概率大概0.5%的数量级。 解决办法: 出现问题的相关逻辑,在2.6.0版本已经被删除。可以考虑升级到2.6.0版本解决
Description
现象: 1.进程持有较多的socket句柄没有释放,通过下面的命令统计,结果为几个到几万个不等。 $ lsof -p $pid -K|grep "protocol: TCP"|wc -l 2.即使业务请求量很低的时候,可能消耗cpu单个核的100%。 top命令:%CPU 100.0 同时通过perf命令查看,主要消耗在于NetworkAsio::timeoutProcess()函数。
Expected Behavior
Current Behavior
Possible Solution
Steps to Reproduce (for bugs)
Context
Your Environment