goc
goc copied to clipboard
v2 版本,连接接受接受缓冲区一直增大,导致OOM
netstat -nltp,关注第二列
各位大佬帮忙定位一下,我定位是这块代码的问题
@lyyyuna @CarlJi
cmd 命令是: ./gocv2 server
可能是bug,欢迎提交PR
- netstat 显示的 send-q, recv-q 属于 tcpip 协议栈,和进程内存没有关系。有堆积说明进程未 recv
- 你 rss kill 时好像才 <200M?是不是内存给小了
- 我这边有长时间运行的 goc server < 50M,给一下使用场景/网络情况/agent 规模
1、第一个问题是确实和进程内存没关系,但是如果连接缓存有堆积,导致系统内存增大,导致OOM,同时也解释了第二个问题,虚机内存资源确实紧张,但是不是根本原因,根本原因是有 业务代码收包逻辑有bug,导致连接缓存堆积 2、使用场景是 我们的容器服务会注册到注册中心,过程中会发起获取覆盖率请求和心跳请求 网络情况: 抓包有堆积连接5分钟显示 心跳包正常,排除心跳逻辑有问题, 网卡没有出现异常包和丢包现象,但是运行大概一周后就会被OOM,期间 连接缓存一直增大 agent规模: 同时在线establish 连接是 180 - 200,范围之间
@lyyyuna
还有补充一点是, 并不是所有 establish 连接 都有堆积问题,只有 大概只有 5%的连接会有这种问题
1、第一个问题是确实和进程内存没关系,但是如果连接缓存有堆积,导致系统内存增大,导致OOM,同时也解释了第二个问题,虚机内存资源确实紧张,但是不是根本原因,根本原因是有 业务代码收包逻辑有bug,导致连接缓存堆积 2、使用场景是 我们的容器服务会注册到注册中心,过程中会发起获取覆盖率请求和心跳请求 网络情况: 抓包有堆积连接5分钟显示 心跳包正常,排除心跳逻辑有问题, 网卡没有出现异常包和丢包现象,但是运行大概一周后就会被OOM,期间 连接缓存一直增大 agent规模: 同时在线establish 连接是 180 - 200,范围之间
还有补充一点是, 并不是所有 establish 连接 都有堆积问题,只有 大概只有 5%的连接会有这种问题
Li Yiyang @.***> 于2022年10月28日周五 13:13写道:
- netstat 显示的 send-q, recv-q 属于 tcpip 协议栈,和进程内存没有关系。有堆积说明进程未 recv
- 你 rss kill 时好像才 <200M?是不是内存给小了
- 我这边有长时间运行的 goc server < 50M,给一下使用场景/网络情况/agent 规模
— Reply to this email directly, view it on GitHub https://github.com/qiniu/goc/issues/314#issuecomment-1294467133, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANANCBJNFAYFHUTMI3MEBV3WFNOIRANCNFSM6AAAAAARFC4O3Q . You are receiving this because you are subscribed to this thread.Message ID: @.***>