linux closed 数量过多
2020-03-23 本文已影响0人
FMD彩虹
晚上10点多收到报警,有一台服务器报错率突增,登陆机器后发现closed 数量过多,程序报错。
image.png
系统简单的架构图介绍
image.png出问题的是gosession 这个服务, gosession 异步通知 interface 和tuyere
cat /proc/net/sockstat
-
close_wait 是TCP关闭连接过程中的一个正常状态
-
close_wait只会发生在被动关闭链接的那一端(各位亲,请不要把图里的client/server和项目里的客户端服务器端混淆)
-
close_wait除非你杀进程,close_wait是不会自动消失的。当然不消失意味着占着资源呢,这里就是占着FD。
查看程序日志 less -R /data/logs/console/gosession.stderr.log
image.png
发现大量报错,出现这句提示的原因是程序打开的文件/socket连接数量超过系统设定值,
image.png image.png查看go程序进程的打开文件数量
image.png image.png
定位到是程序问题,要开发仔细看看,运维这边,优化下内核参数,加快time-wait 回收。
image.png
原因:
gosession 异步通知 interface http 没有close ,导致gosession 占用大量closed .