- Published on
nging出现499
- Authors

- Name
- Ushen
前两天线上服务器出现了大部分接口请求报错的问题
查nginx日志发现出现了大量的worker_connections are not enough
看到今天请求量确实是比往常高,以为是worker开的不够,把配置里面的worker_connections加多了
但是情况并没有改善, 于是进一步查到uwsgi, 发现uwsgi有大量的listen queue full
感觉这很奇怪, 为了尽快解决, 我加多了uwsgi的listen配置, 事情有好转, 但是没有多大作用, 每隔一段时间就又会出现listen queue full
怀疑是哪里导致的http连接一直没释放,占用资源,
最后找到问题的是gin服务上的一个接口, 这个服务出现了某些异常, 使用的内存量一直不断上升, 这是以往都不会出现的情况,
原因在这里
c.AbortWithStatus(http.StatusInternalServerError)
接口捕捉到异常之后, 会调用这个函数然后返回, 这里是返回500状态错误码, 按道理客户端在收到500错误请求就会关闭了, 还不清楚为什么会这样
这里改成返回200状态码,和错误信息给请求方, 一切就正常了
目前还不知道什么情况, 后续有时间再细看一下