由于某种原因,我们使用一台centeros 7.9部署了所有的微服务内容,包括后台数据库等。后来发现 20天左右系统内存就渐渐用完,导致内存溢出,并且socket连接出现问题。第一次重启大法解决。几天之后发现内存还是一直增加。经过查找原因是因为:
/proc/net/sockstat 最后一个数值只一直增加,而且速度缓慢。
最后找到原因是因为有同事把docker compose里面的服务端口写重复错误启动容器没有删除错误的容器导致。重新 执行 : docker compose down && docker compose up -d 后,问题解决。
最终原因是因为没有关闭socket连接所致。可以通过ss -antup 或者 netstat -antup查看后,存在大量 CLOSE-WAIT的连接,而且Recv-Q还有数据.