linux closed 数量过多

晚上10点多收到报警,有一台服务器报错率突增,登陆机器后发现closed 数量过多,程序报错。


image.png

系统简单的架构图介绍

image.png

出问题的是gosession 这个服务, gosession 异步通知 interface 和tuyere

cat /proc/net/sockstat

image.png

image.png
  • 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 .

你可能感兴趣的:(linux closed 数量过多)